Kamil
Kłosowski
webdeveloper
limegarden.pl
Temat: Funkcja "Zapamiętaj mnie" - kwestie bezpieczeństwa
HejPrzejrzałem kilka tematów w tej grupie, jednak w żadnym nie odnalazłem tego wątku.
Kwestie techniczne tej funkcji każdy dowolnie może rozwiązać, ja wybrałem tworzenie unikalnego hasha po stronie klienta oraz bazy - w bazie oprócz hash jest też id usera oraz czas aktualizacji pola. W trakcie autoryzacji użytkownika system sprawdza poprawność kilku danych w sesji - jeśli nie zgadzają się wylogowuje użytkownika chyba, że ma aktywne ciastko autologowania - jeśli ma, porównuje hashe w bazie z hashem w ciastku, jeśli się zgadzają to RESETUJE hash w ciastku oraz updejtuje hash w bazie dodatkowo resetując sesję.
Tu pojawia się problem - jeśli gość zaloguje się na innym komputerze i wykorzysta funkcję remember me, system przypisze mu ciastko i zupdejtuje hash w bazie - to na pierwszym komputerze ciastko nie będzie zgadzało się z tym w bazie i go nie zaloguje.
Serwis taki jak facebook - jednak oferuje możliwość autologowania na wielu komputerach. Jak to wygląda w kwestii bezpieczeństwa? Można tworzyć niezliczone ilości hashy przypisanych do jednego usera - i ok, ale w takim razie wykradnięcie jednego z ciastek zawierającego taki hash pozwoli na zalogowanie się na dowolnym komputerze na świecie.
Opcja z dodatkową weryfikacją przez IP nie jest dobrym rozwiązaniem, użytkownicy tp oraz korzystający z mobilnego netu nie będą mogli skorzystać z tej funkcji - bo co chwile będą mieli logout.
Może fingerprint? Ktoś to ogarniał?
Z góry dzięki za propozycje i sugestie