2 Stimmen

Zugriff auf Sitzungsdaten mit einer Sitzungs-ID

Mir wurde gesagt, dass es unsicher ist, Dinge wie Passwörter, Benutzernamen und Benutzer-IDs in Cookies zu speichern, und dass man stattdessen eine SessionID in einem Cookie speichern sollte. Hier komme ich nicht weiter.

Mein Ziel ist es, eine einfache Funktion zur Erinnerung an mich zu haben. Normalerweise würde ich die Anmeldeinformationen des Benutzers in einem Cookie speichern, aber da dies unsicher ist, frage ich mich, was die Alternative ist. Ich weiß, dass jedes Mal, wenn ich eine Sitzung einrichte, ein Cookie erstellt wird, das eine eindeutige ID erzeugt, die jedoch verfällt, wenn ich meinen Browser schließe. Wie erhalte ich also Zugriff auf diese Sitzungsinformationen, nachdem der Browser geschlossen wurde?

Für jede Hilfe sind wir dankbar.

2voto

User123342234 Punkte 1455

Am besten ist es, wie bereits vorgeschlagen und von den meisten Drittanbieteranwendungen praktiziert, eine Datenbanktabelle "user_sessions" mit den folgenden Feldern zu erstellen:

session_id (var_char)
user_id (int)
ip_address (var_char)
last_logged_in (unix timestamp)

Dann verwenden Sie ein Cookie, um einen md5-Hash zu speichern, den Sie möglicherweise verwenden möchten:

md5($username.$ip); //since md5 has a lot of reverse look ups now you should use a number of fields to validate. You could use a different crypto function to make it more difficult to crack, but md5 is the simplest version available in all php versions.

EDIT: Sie vergleichen dann den gespeicherten Hash aus dem Cookie mit der Datenbank session_id um zu sehen, ob sie sich bereits angemeldet haben. Der Grund für die Kombination mehrerer Felder in der md5-Funktion besteht darin, ein weniger "erratbares" Hashing-Format zu schaffen. Dadurch wird es unwahrscheinlicher, dass jemand in der Lage ist, ein Cookie zu bearbeiten und sich als jemand anderes anzumelden.

Dies könnte für alle Benutzer durchgeführt werden (auf diese Weise können Sie verfolgen, wer online ist) und einfach eine "dauerhafte" Login-Variable im Cookie setzen. z.B.

p_login=true || p_login=false

Auf diese Weise wissen Sie, ob Sie sich automatisch anmelden oder die Anmeldung erzwingen müssen.

Hinweis: Möglicherweise können Sie Folgendes einsehen http://www.openwall.com/articles/PHP-Users-Passwords für eine andere Art des Hashes von Passwörtern, session_ids und Benutzern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X