Christian Seiler: Login Klasse/Meinung/Verbesserungsvorschläge

Beitrag lesen

Hallo,

Faustregel: Jedes mal, wenn sich in einer Session die Privilegien erhöhen (Nicht eingloggt -> eingeloggt z.B.), sollte eine neue Session-ID erzeugt werden (session_regenerate_id), um Session-Fixation-Angriffe zu verhindern.

Das mach ich doch oder?

if (!isset( $_SESSION['server_SID'] )) {

session_unset();
        $_SESSION = array();
        session_destroy();
        session_start();
        session_regenerate_id();
        $_SESSION['server_SID'] = TRUE;
}

  
Nein, da machst Du das nur, wenn die Session nicht initialisiert war, \*nicht\* wenn die Privilegien erhöht werden. In dem Moment, in dem der User sich einloggt (d.h. die Passwortüberprüfung erfolgreich ist), \*genau dann\* muss session\_regenerate\_id() genutzt werden. Die Stelle, an der Du es verwendest, ist zwar nicht schädlich, aber auch nicht wirklich nützlich... (Wobei die Reihenfolge von den ganzen Session-Aufrufen an dieser Codestelle irgendwie seltsam ist... Was ist die Logik dahinter?)  
  
Viele Grüße,  
Christian  

-- 
[Mein "Weblog"](http://del.icio.us/chris_se/servertipps) [[RSS](http://del.icio.us/rss/chris_se/servertipps)]  
[Using XSLT to create JSON output](http://www.christian-seiler.de/projekte/xslt-json/) (Saxon-B 9.0 for Java)  
  
[How to tell the difference between a science fan and a scientist.](http://www.smbc-comics.com/index.php?db=comics&id=1777#comic)