CIT: (PHP) Qualität meines Login-Systems

Beitrag lesen

Hi.

Ich denke, erst Salt und dann gehasht waer effizienter ;-)

So ist es auch, habe bei der Formulierung jetzt nicht auf die Reihenfolge geachtet ;).

»» Die Authentifizierung läuft so ab:
»» - Das Cookie wird ausgelesen
»» - Das Konstrukt entschlüsselt
»» - Ist der Salt der richtige? Wenn ja - okay
»» - Ist EXPIRATION < time() ? Wenn nein - okay
»» - Ist eine UserID vorhanden? Wenn ja - okay

Haaalt. Das ist schlecht.

Hm okay.

Also ich würde es dann so machen:

  • Erzuege zufälligen Schlüssel und setze ein Cookie + verschlüsselte ID .
  • Speicher Cookie + Expiration Date + ID in der Datenbank (Damit sich die Datenbank auch leeren kann, wenn die TIMESTAMPS in der Datenbank abgelaufen sind. Denn wenn ich dies erst bei einer fehlgeschlagenen Authent.. dann waren die Keys umsonst in der Datenbank. Man hat 2 Modis entweder man bleibt für die aktuelle Section eingeloggt oder für immer - "Remember Me"-Funktion halt. Man kann das löschen der ungültigen Sitzungen ja per Cronjob erledigen)

Beim Authentifizieren:

  • Cookie da? Entschlüssel.
  • Cookie in der Datenbank?
  • Sitzung noch gültig?
  • passt die verschlüsselte USERID auch dazu?

Und okay - ich sollte dann wieder Sessions benutzen um den eingeloggten Status weiterzugeben.

Noch eine Frage:

»» [...] da ich somit komplett auf Sessions verzichten kann [...]

Warum willst Du das?

Weil ich mir dachte - wenn ich mir das mit den Sessions wirklich komplett spare - gewinne ich nen Tacken an Geschwindigkeit ;). Also dachte ich mir, versuchste irgendwie auf Cookie oder Session(auch wenn diese ebenfalls Session-Cookies setzen) zuverzichten.

Gruß,

CIT