marley: Sicherheit - Sessions - Interbereich

Ich bin jetzt soweit, dass es zumindest funktioniert.

Wenn der user ein richtiges Passwort mit dem dazugehörigem Namen eingegeben hat wird:
$_SESSION['auth']="erfolgreich";
gesetzt.

durch:
if(isset($_SESSION['auth'])) {
                             $login="fehlgeschlagen";
                             ...loginbereich ...
                             }

wird ihm dann Zugang gewährt.

Allerdings ist dieser Login dann auch sicher?
Ich weiß ja das $_SESSION['auth']="erfolgreich"; nur auf dem server liegt und der Client dadurch ihm diesen Wert nich vorgaukeln kann, aber gibt es andere Möglichkeiten den server zu "bescheissen"?

Sollte ich vielleicht $_SESSION['auth'] das Passwort zuweisen und dann nochmal in der if-Anweisung überprüfen ob es das richtige Passwort ist, oder ist das unnötig?

  1. Sollte ich vielleicht $_SESSION['auth'] das Passwort zuweisen und dann nochmal in der if-Anweisung überprüfen ob es das richtige Passwort ist, oder ist das unnötig?

    Das würde nur den Vorteil bringen, dass alte Sessions bei einer Passwortänderung nicht mehr gültig sind.
    Sicher ist das allemal, aber sessions können u.U. geklaut werden, du könntest also andere Sicherheitsmaßnahmen erwägen.
    Beispielsweise könntest du je Benutzer nur eine bestimmte Zahl an gültigen Sessions erlauben, denn grade wenn du ohne Dauer-Login arbeitest würden haufenweise gültige aber unbenutze Sessions entstehen. Oder aber du hältst deren Lebenszeit niedrig.

    greetz RFZ

    1. rein interesse halber...
      wie halte ich die Lebenszeit von sessions gering`?

      1. Hello,

        Die Frage ist nicht ausreichend substantiiert...

        wie halte ich die Lebenszeit von sessions gering?

        Indem Du eine eigene Session-Lebensdauer einführst.
        Das Grundsystem von PHP ist nur dazu gedacht, einen Unterbau zu liefern, der gelegentlich den Müll aufräumt.

        Ob eine Session noch gültig ist, sollte in einem eigenen System definiert werden.
        Hier kann mann dann speichern, feststellen und festlegen

        • Session Start
        • maximale Dauer zwischen zwei Requests in dieser Session
        • maximale Gesamtdauer der Session
        • maximale Anzahl von Requests in der Session
        • maximale Anzahl von Datensätzen im Response (falls man Datenklau beobachten will)
        • ...

        Leider erwarten viele Programmierer immer wieder von PHP, dass es eine fertige Funktion für jeden Anwendungsfall liefern würde. PHP ist aber bisher nur ein Grundsystem und in Bezug auf Sicherheit, Datenzugriff, usw. muss man sich aus den Basisfunktionen erst eigene komplexere Systeme bauen!

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau