Jestem w trakcie kodowania formularza logowania "zapamiętaj mnie", a do tej pory samouczki, które przeczytałem (częściowo w celu upewnienia się, że robię to dobrze) wszyscy mówią, że przechowują zaszyfrowane hasło w cookie wraz z nazwą użytkownika. Następnie za każdym razem, gdy PHP sprawdza, czy bieżący użytkownik nie jest zalogowany, sprawdź pliki cookie i poszukaj tych wartości. Jeśli nazwa użytkownika pasuje do hasła, jesteś w.Wada bezpieczeństwa "Remember Me" w języku PHP?
Dla mnie jest to luka w dziale bezpieczeństwa. Gdyby ktoś włamał się do bazy danych lub w jakiś sposób uzyskał dostęp do zaszyfrowanych haseł, nie musiałby ich nawet łamać. Po prostu ustaw własne ciasteczka i idź. Czy mam rację, czy po prostu paranoję?
Mój system logowania wykorzystuje sesje do śledzenia bieżącego identyfikatora użytkownika oraz 1/0 dla szybkiego zalogowania/wylogowania. Użytkownik nie może edytować sesji AFAIK, więc jest to bezpieczne (jeśli tak nie jest, proszę dać mi znać). Myślałem o przechowywaniu identyfikatora sesji w pliku cookie, aby później go wznowić, ale to też nie jest bezpieczne.
Bardzo zależy mi na bezpieczeństwie moich użytkowników, w jaki sposób mogę właściwie chronić ich dane, zachowując jednocześnie funkcjonującą stronę internetową?
Nie będę przechowywać zaszyfrowanego hasła, tylko identyfikator użytkownika w pliku cookie, który wygasa za X dni. W przypadku obszarów "wrażliwych" (na przykład zarządzanie kontem/profilem) można wymagać od nich logowania, jeśli nie mają one prawidłowej wartości $ _SESSION (którą należy ustawić podczas logowania). – JennyDanger
W jaki sposób przechowujesz obecnie identyfikator sesji, jeśli zapisanie jej w pliku cookie jest "niezabezpieczone?" –
@georgefox obecnie, nie przechowuję identyfikatora sesji w czymkolwiek, tylko mówiłem, że jest to możliwość funkcji zapamiętaj mnie. – Scott