Chcę, aby moja witryna miała pole wyboru, które użytkownicy mogą kliknąć, aby nie musieli się logować przy każdej wizycie na mojej stronie. Wiem, że będę musiał przechowywać plik cookie na ich komputerze, aby to zaimplementować, ale co powinno być zawarte w tym pliku cookie?
Czy są też często popełniane błędy, na które należy uważać, aby ten plik cookie nie zawierał luki w zabezpieczeniach, której można by uniknąć, zapewniając jednocześnie funkcję „zapamiętaj mnie”?
security
cookies
remember-me
Vort3x
źródło
źródło
Odpowiedzi:
Ulepszone trwałe logowanie do plików cookie Najlepsze praktyki
Możesz użyć tej strategii opisanej tutaj jako najlepszej praktyki (2006) lub zaktualizowanej strategii opisanej tutaj (2015):
Takie podejście zapewnia dogłębną obronę. Jeśli komuś uda się przeciekać tabelę bazy danych, nie daje atakującemu otwartych drzwi do podszywania się pod użytkowników.
źródło
Przechowałbym identyfikator użytkownika i token. Gdy użytkownik wróci do witryny, porównaj te dwie informacje z czymś trwałym, takim jak wpis w bazie danych.
Jeśli chodzi o bezpieczeństwo, po prostu nie umieszczaj w nim niczego, co pozwoli komuś zmodyfikować plik cookie, aby uzyskać dodatkowe korzyści. Na przykład nie przechowuj ich grup użytkowników ani hasła. Cokolwiek, co można zmodyfikować, co obejdzie Twoje bezpieczeństwo, nie powinno być przechowywane w pliku cookie.
źródło
Przechowuj ich UserId i RememberMeToken. Kiedy logują się przy użyciu zapamiętaj mnie zaznaczone, wygeneruj nowy RememberMeToken (które unieważniają wszystkie inne zaznaczone maszyny zapamiętują mnie).
Kiedy wrócą, odszukaj je według tokena zapamiętaj mnie i upewnij się, że identyfikator użytkownika pasuje.
źródło
Sam badając trwałe sesje, odkryłem, że po prostu nie warto ryzykować. Skorzystaj z niego, jeśli absolutnie musisz, ale powinieneś rozważyć taką sesję tylko słabo uwierzytelnioną i wymusić nowy login dla wszystkiego, co może mieć wartość dla atakującego.
Powodem jest oczywiście to, że pliki cookie zawierające trwałą sesję są tak łatwo kradzione.
4 sposoby na kradzież plików cookie (od komentarza Jensa Rolanda na stronie
@splattne
opartej na jego odpowiedzi):źródło