Eingeloggt bleiben was soll in den Cookie?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angreifer
beispiel
benutzen
benutzername
bleiben
chance
code
dank
datenbank
einloggen
eins
funktion
idee
inhalt
leichtes spiel
login
realisieren
speiche
speichern
unsicher danke
-
Hallo LC,
Ich will bei meinen Login auf meiner Homepage eine "Eingeloggt bleiben" Funktion machen.
Das möchte ich mit Cookies realisieren. Ich weiß nur nicht was ich in den Cookie schreiben soll damit das ganze auch sicher ist. Einmal die UserID und was noch? Hat jemand ne Idee?
Danke Schonmal
Christian -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Klassischerweise kann man auch einfach Username + Passworthash speichern ;)
-
cookies schrieb: Einmal die User-ID und dann noch einen Zufallscode, der bei jedem Login neu erzeugt wird und auch in der DB gespeichert ist.
Ich erzeuge zum Beispiel einen Hash aus der User-ID und dem Code und setz das dann als Cookie.
LG cookies
Danke Werde ich Machen!
nikic schrieb: Klassischerweise kann man auch einfach Username + Passworthash speichern ;)
Ist mir zu unsicher. Danke aber.
LG
Christian -
Man kann auch nur ein zufallscode benutzen, der hinter dem Usernamen in der Db für die Zeit des Passwort Speichen vorhanden ist,danach wird er gelöscht, wenn dier code übereinstimmt mit dem cookiecode wird das Passwort aus der DB genommen und automatisch in das pw Feld als Value genommen und eben noch der Benutzername, sodass man nur noch auf einloggen drücken muss und wenn nichts gespeichert werden soll bleibt der Inhalt 0
-
Es ist unsicher den gleichen String in der Datenbank zu haben, der auch im Cookie steht.
Wenn ein Angreifer in eure Datenbank kommt, hat er damit nämlich automatisch auch vollen Benutzerzugriff auf die Website.
Am sinnvollsten ist es wie folgt:
Du erstellst zwei Zufallsstrings. Zufallsstring eins wird in der DB abgespeichert.
Zufallsstring zwei wird in den Cookie geschrieben.
Zufallsstring eins und zwei werden aneinander gehängt und md5 verschlüsselt. Dieser Schlüssel wird ebenfalls mit Zufallsstring eins in der DB gespeichert (und mit dem User verknüpft). Außerdem bekommt er noch eine eindeutige ID, die ebenfalls in einen Cookie kommt.
Wenn der User jetzt die Seite besucht, wird der die ID aus dem Cookie ausgelesen und mit Hilfe dessen der Zufallsstring eins aus der DB. Nun wird der Zufallsstring eins aus der DB wieder mit dem Zufallsstring zwei aus dem Cookie verknüpft und mit md5 verschlüsselt. Wenn dieser Schlüssel mit dem aus der DB übereinstimmt, dann wird der User eingeloggt.
Somit hat ein Angreifer, der nur den Datenbankzugang hat keine Chance in das System einzudringen und ggf. noch weitere Fehler zu finden.
Und glaub mir, das ist wirklich sinnvoll es so zu machen. Sonst hat der Angreife leichtes Spiel. ;:-) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage