So, ich wollt mich jetzt nochmal etwas intensiver damit beschäftigen, wie man einen Login sicher gestaltet. Deswegen habe ich doch ein paar Fragen, worauf man achten muss.
Login Vorgang verläuft im Allgemeinen wohl folgendermaßen ab:
1. Formular anzeigen
2. Ausgefülltest Formular wird abgeschickt => Datan auslesen
3. Daten mit Datenbank überprüfen (=> Erfolg)
4. Daten in der Session speichern
5. Bei jedem Seitenaufruf Login-Status überprüfen
Bei Punkt 4 und 5 bin ich mir unsicher. Welche Daten soll / kann ich speichern, welche auf keinen Fall? Was muss ich überprüfen, um sicher zu gehen, dass das immernoch der selbe Computer/Browser ist? (den Menschen davor kann ich wohl schlecht kontrollieren
)
Was wohl nicht da rein gehört wäre das Passwort.
Daten wie Username oder eine eindeutige ID hingegen müssen wohl irgendwie da drinne stehn, um den Benutzer wieder identifizieren zu können. Aber was brauch ich noch?
Und dann bei der Überprüfung. Eine Überprüfung nach dem Schema isset($_SESSION['user_is_logged_in']) dürfte ja wohl recht unsicher sein. Aber jedes mal ne datenbankabfrage starten und irgendwelche Daten abfragen (welche Daten? Beim Einloggen generierte Hashs, die auch in der Session stehen?) wäre wohl sicher, aber so gesehen relativ aufwändig.
Deswegen mal an alle, die damit Erfahrung haben: Was macht ihr, was haltet ihr für nötig, was sollte ich auf jeden Fall vermeiden?
Login Vorgang verläuft im Allgemeinen wohl folgendermaßen ab:
1. Formular anzeigen
2. Ausgefülltest Formular wird abgeschickt => Datan auslesen
3. Daten mit Datenbank überprüfen (=> Erfolg)
4. Daten in der Session speichern
5. Bei jedem Seitenaufruf Login-Status überprüfen
Bei Punkt 4 und 5 bin ich mir unsicher. Welche Daten soll / kann ich speichern, welche auf keinen Fall? Was muss ich überprüfen, um sicher zu gehen, dass das immernoch der selbe Computer/Browser ist? (den Menschen davor kann ich wohl schlecht kontrollieren
Was wohl nicht da rein gehört wäre das Passwort.
Daten wie Username oder eine eindeutige ID hingegen müssen wohl irgendwie da drinne stehn, um den Benutzer wieder identifizieren zu können. Aber was brauch ich noch?
Und dann bei der Überprüfung. Eine Überprüfung nach dem Schema isset($_SESSION['user_is_logged_in']) dürfte ja wohl recht unsicher sein. Aber jedes mal ne datenbankabfrage starten und irgendwelche Daten abfragen (welche Daten? Beim Einloggen generierte Hashs, die auch in der Session stehen?) wäre wohl sicher, aber so gesehen relativ aufwändig.
Deswegen mal an alle, die damit Erfahrung haben: Was macht ihr, was haltet ihr für nötig, was sollte ich auf jeden Fall vermeiden?