Dieter Raber: Login Script - Was ist wichtig

Beitrag lesen

Hallo f34rless,

Loginscripte funktionieren im Prinzip folgendermassen:

  • Username und Password werden gepostet
  • Du machst eine Abfrage auf deiner Usertable, ob es einen User und mit einem Password gibt, die den geposteten Daten entsprechen
  • Wenn das nicht so ist, zeigst du wieder die Loginform an mit einer entsprechenden Fehlermeldung
  • Andernfalls schreibst du z.B. den Usernamen in die Session
  • Auf allen nachfolgenden Seiten ueberpruefst du die Session, ob sie den Usernamen enthaelt.

Es gibt dabei aber einige Dinge zu beachten:

  • bevor du die Abfrage auf der Datenbank machst, solltest du, etwa mit einem regulaeren Ausdruck untersuchen, ob die Eingaben gewissen Kriterien entsprechen. Beispielsweise kannst du darauf achten, dass nur Buchstaben [a-zA-Z] und Zahlen [0-9], gueltige Eingaben sind. Zweck dieser Uebung ist es SQL-Injections zu verhindern. Du kannst auch andere Zeichen zulassen, vorstehendes soll nur als Beispiel dienen.
  • Die Fehlermeldung sollte nie lauten 'Falscher Benutzername' oder 'Falsches Passwort', sondern immer 'Falsches Password ODER falscher Benutzername', um keine Hinweise darauf zu geben, welcher Teil des Logins bereits korrekt erraten wurde. Zudem solltest aus dem gleichen Grund auch nicht Usernamen oder Password aus dem erfolglosen Login in das Formular zurueckschreiben.
  • Keinesfalls solltest du das Password in die Session schreiben.
  • Es ist auch sinnvoll, den REMOTE_HOST des Users mit in die Session zu uebernehmen und diesen auf jeder folgenden Seite wieder zu ueberpruefen. Auf diese Art kannst Du zumindest in einem gewissen Rahmen verhindern, dass eine entfuehrte Session verwendet wird.

Gruß,

Dieter