Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Identyfikacja użytkownika
Forum PHP.pl > Forum > PHP
yarns
Witam,

chodzi o bezwględną identyfikacje użytkownika... a konkretnie to wygląda tak:
użytkownik loguje się do systemu... i trzeba zablokować mu ponowne zalogowanie się i założenie konta z tego komputera... chodzi po prostu o jak największe uniemożliwienie użytkownikowi zakładania kilku kont z jednego komputera... najprościej byłoby wyciągnąć adres MAC karty sieciowej... ale w php to raczej nei możliwe...
CZekam na wszelkie sugestie...

Pozdrawiam
Yarns
nospor
nie ma metod idealnych. Zawsze może póść na inny komp i bulba.
Możesz sprawdać IP. Gorzej jak nie ma stalego

MOżna poprzez adres email. Jak ktoś będzie zdesperowany to potworzy full skrzynek sobie, no ale jak mówilem nie ma metod idealnych biggrin.gif

Najlepiej polaczyc kilka metod
Coyote
tez wlasnie sie ostatnio nad tym zastanawialem tylko nie w kwesti zakladania konta a w kwesti banowania ... ma ktos jakis pomysl questionmark.gif
Pigula
mozesz w jakiejs bazie przechowywac ip tylko osoby uzywajace modemy sa ponad to smile.gif
matid
Sytuacja się dodatkowo komplikuje, jeśli z jednego komputera korzysta kilka osób.
Możesz zawsze spróbować rejestrować na podstawie numeru jakiegoś dowodu osobistego, albo chociaż numeru PESEL.
brachu
Z numerem PESEL czy nr dowodu jest maly problem - kiepsko z weryfikacja!!! mozna wymyslac numery... ja bym raczej stawial na maila zreszta tak chyba jest w wiekszosci portali, identyfikacja po @...
revyag
Blokada ponownego założenia konta z danego ip jest średnim zabezpieczeniem, bo ktoś uparty pójdzie na innego kompa i tam założy sobie konto.
Nie wiem czy jest sens to blokować, bo jak ktoś chce to i tak obejdzie zabezpieczenia, a użytkownik który chce w normalny sposób korzystać z serwisu nie będzie kombinował.
Radarek
Cytat(brachu @ 2005-06-16 06:34:31)
Z numerem PESEL czy nr dowodu jest maly problem - kiepsko z weryfikacja!!! mozna wymyslac numery... ja bym raczej stawial na maila zreszta tak chyba jest w wiekszosci portali, identyfikacja po @...

Nie wiem czy wiecie, ale PESEL to nie jest jakis tam dowolny ciag cyfr.

Cytat
Poprawnośc numeru PESEL

Numery PESEL nadają gminy na mocy Art.46 ustawy z dnia 10. kwietnia 1984 o ewidencji ludności i dowodach osobistych.

PESEL jest to 11-cyfrowy, stały symbol numeryczny, identyfikujący jednoznacznie określoną osobę fizyczną. PESEL zbudowany jest z następujących elementów:
data urodzenia
płeć
liczba porządkowa
cyfra kontrolna
Data urodzenia zapisana jest w następującym porządku: dwie ostatnie cyfry roku, miesiąc i dzień. Dla rozróżnienia stuleci przyjęto metodę kodowania:
dla lat 1900-1999 miesiąc zapisywany jest w sposób naturalny
dla lat 1800-1899 do numeru miesiąca dodawana jest liczba 80
dla lat 2000- 2099 do numeru miesiąca dodawana jest liczba 20
dla lat 2100- 2199 do numeru miesiąca dodawana jest liczba 40
dla lat 2200- 2299 do numeru miesiąca dodawana jest liczba 60
Powyższa metoda pozwala na rozróżnienie 5 stuleci.

Informacja dotycząca płci osoby zawarta jest na 10 pozycji numeru PESEL:
cyfry 0, 2, 4, 6, 8 - płeć żeńska
cyfry 1, 3, 5, 7, 9 - płeć męska
Cyfra kontrolna
Ostatnia cyfra numeru PESEL ma charakter kontrolny... Każdej pozycji numeru PESEL nadany został odpowiedni współczynnik - waga pozycji. Algorytm kontrolny numeru PESEL jest następujący: każdą cyfrę numeru mnoży się przez jego wagę i sumuje wyniki mnożenia. Otrzymany wynik dzielimy modulo 10 i odejmujemy od 10 (dla wyniku 10 cyfra kontorlna przyjmuje wartość 0). Cyfry numeru PESEL X X X X X X X X X X
Wagi 1 3 7 9 1 3 7 9 1 3


Przykładowo na dumeru PESEL
49040501580
otrzymujemy:


suma = 1*4+3*9+7*0+9*4+1*0+3*5+7*0+9*1+1*5+3*8 = 120
120 mod 10 = 0
10-0=10

Zatem otrzymujemy cyfrę kontrolną 0 - numer PESEL jest poprawny. Poniższa funkcja sprawdza poprawnośc numeru PESEL:

<?
function vpesel($PESEL,$sex="?") {
if ($PESEL[9] % 2 and $sex=="K") return false;
else if (!$PESEL[9] % 2 and $sex!="M") return false;
$w=array(1,3,7,9);
for ($i=0;$i<=9;$i++)
  $wk=($wk+$PESEL[$i]*$w[$i % 4]) % 10;
$k = (10-$wk) % 10;
if ($PESEL[10]==$k) return true;
else return false;
}
?>

Zatem funkcja:

bool(string pesel [,string sex])

zwraca true jeżeli nr PESEL jest poprawny, w przeciwnym wypadku false. Przykłady wywołań:

vpesel("74021834012") - jeżeli nie mamy informacji o płci
vpesel("74021834012","M"); - jeżeli wiemy, że to mężczyzna
vpesel("74021834012","K"); - jeżeli wiemy, że to kobieta
sobstel
@raderek, chodzi o to ze nie ma mozliwosci weryfikacji czy dany pesel nalezy do danej osoby, wystarczy ze ktos sobie wygwneruje numer na podstawie wzorow ktore podales powyzej.
Radarek
Cytat(sopel @ 2005-06-16 09:28:58)
@raderek, chodzi o to ze nie ma mozliwosci weryfikacji czy dany pesel nalezy do danej osoby, wystarczy ze ktos sobie wygwneruje numer na podstawie wzorow ktore podales powyzej.

No tak zgadza sie. Takiej weryfikacji przez neta raczej nie da sie zrobic:). Dane mozesz zawsze podac sasiada i tego nie sprawdzisz winksmiley.jpg. Ale jakkolwiek dane dotyczace np adresu mozesz podac dowolne to z peselem troszke jest inaczej bo po pierwsze zapewne pesela sasiada nie znasz, a po drugie jesli nie wiesz jak poprawny pesel musi byc zbudowany to nie wymyslisz dobrego smile.gif.
brachu
@raderek zgadzam się tylko że rejestracje z użyciem maila jest przeprowadzic prosciej bo poprostu wysylasz do goscia wiadomosc na @ z linkiem do aktywowania konta i po sprawie... a odnosnie nr PESEL to szczerze mowiac nie znalem tych zaleznosci poza data urodzenia winksmiley.jpg
Coyote
czyli widze ze jednak nie ma mozliwosci zablokowac komus kompletnie dostep do strony.... no nic szkoda ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.