Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapamiętaj Mnie
Forum PHP.pl > Forum > Przedszkole
Weles
Witam.
Chciałem na swojej stronie umieścić przycisk "Zapamiętaj Mnie" lecz na przeszkodzie stoi to, że nie wiem jak to zrobić.
Tzn. w pewnym sensie umiem to zrobić, ale nie tak żeby było to bezpieczne..
Chodzi mi o to aby w Ciasteczkach nie zapisywać Loginu i Hasła bo to jest złoo..
Byłem już na kilku/nastu linkach, np:
http://forum.php.pl/index.php?showtopic=150258
http://forum.php.pl/index.php?showtopic=133583
I wszędzie piszą o zapisywaniu danych w ciasteczkach..
Moje pytanie brzmi:
Generując losowy klucz, np rand(1111,9999); lub md5(uniqid(true, rand())); i zapisując go w cookie, a następnie czytając przez stronę - czy będzie to bezpieczne? - Chyba nie.. bo każdy może sobie ten klucz wyedytować w cookie i będzie kupa :/
Prosiłbym o jakieś sensowne propozycje jak mogę to zrobić..
Pozdrawiam.
b4rt3kk
Czemu uważasz że nie będzie to bezpieczne? Jeśli każdy będzie miał unikatowy dla siebie klucz, do tego zakodowany, np. md5($login.$haslo) i to umieścisz w ciasteczku to żeby zalogować się jako ktoś inny edytując ciasteczko będzie musiał wiedzieć w jaki sposób kodujesz to co jest w środku i co kodujesz, do tego będzie musiał znać czyjś login i hasło jak już pozna metodę kodowania.
Posio
Ja mam zrobione zapamiętanie na takiej zasadzie:


-Każdy użytkownik ma swój unkalny KEY - hash złożony z 25 liter/cyfr
-po kliknięciu "Zapamiętaj mnie" sprawdzane jest czy użytkownik zalogował się poprawnie, i po tej czynnosci ustawiam ciasteczko z KEYEM danego użytkownika.
-przy wchodzeniu na strone jest sprawdzane czy cookie "zapamiętaj " != 0 (przy kliknięciu wyloguj ustawia cookie 0) jeśli jest różne od 0 sprawdza zawartość, porównuje z wpisami z bazy i ustawia sesję odpowiadającą uzytkownikowi danego KEYA.


W moim mniemaniu jest to w miarę bezpieczne.
johny_s
trzymanie tego klucza jest tak samo bezpieczne jak trzymanie klucza sesji w ciachu, jak Ci ktos zaiwani to wejdzie na Twoje konto (oczywiscie zalezy jeszcze od tego czy sesja ma dodatkowe zabezpieczenia po stronie serwera)
Posio
Jeśli zależy Ci tak cholernie na bezpieczeństwie to odpuść sobie tę funkcję. Jest ona potencjalnie niebezpieczna i kazdy o tym wie. A jeśli można to zrobić zachowując przy tym poziom bezpieczeństwa to na pewno nie w taki łatwy sposób.
vee
W sf_guard_plugin dla Symfony 1.4 z tego co pamiętam było to rozwiązane w następujący sposób:
w cookie był przetrzymywany tzw. remember_key
w bazie była tabela z indeksem remember_key, ip, czasem itp sprawdzane wartości, możesz dodać przeglądarkę, system itd. był oczywiście również nr. id konta użytkownika.
i tak sobie PHP sprawdzało co potrzebowało, jeśli wszystko się zgadzało, remember_key nie wygasł itd to user był logowany.

Post oparty na zamglonych wspomnieniach wink.gif
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.