session_regenerate_id auf jeder Seite ausführen

  • Versuche gerade eine (naive) abwehrmethode gegen session fixation zu implementieren (in ein login system).

    Dazu gibt es ja die funktion session_regenerate_id(). Es wird empfholen bei jedem user-restriction-level-change einen session_regenerate_id zu machen (zB beim einloggen).
    Nur was hält mich davon ab, die session id bei jedem seiten aufruf zu erneuern? Hab das mal bei einem scirpt getestet wo als erste zeile session_regenerate_id() steht (also eigentlich 2te da in der ersten session_start steht). Das login system funktionierte weiter.

    Verstehe also nicht ganz wie das funktioniert und wie ich das am besten einsetzen sollte

    (Übrigens man sollte immer session_regenerate_id mit dem parameter "true" aufrufen damit die alten ids gelöscht werden)

  • Naja, wenn man im Browser auf back geht, fliegt man dann nicht automatisch aus deinem System raus?
    Gleichiges, wenn man mehrere Browserfenster offen hat in der gleichen Session.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Interessanterweise hauts mich nicht raus wenn ich den back button drücken. Bei mir wird die session id aber mit cookie weitergegeben und wird nicht an der url drangehängt.

  • hmmm und wenn die verbindung vom browser zum internet kurz abbricht beim empfang der seite, und deswegen das cookie nicht upgedatet wird?

    Das ist bei Handynetzwerk-basierten Verbindungen gar nicht so selten.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

    Einmal editiert, zuletzt von hal (18. August 2008 um 19:06)

  • Dann gehts wahrscheinlich nicht. Das Session_regenerate_id() auf jeder seite war nur exprimentel. Hab jetzt nurmeher eines beim einloggen/ausloggen und wenn mittels cookie wiedereingeloggt wird (min. alle 20min).

    Dh eine Session ID ist max. 20 min gültig, kurz genug um eine gewisse sicherheit zu gewährleisten.

  • Guckst du mal in Wikipedia ausserdem... Du kannst sicherstellen, dass die Session ID nur mittels Cookie uebergeben wird, das sollte das Problem der Session Fixation meines Wissens nach loesen. Oder wie koennte ein Angreifer hier Schaden anrichten? Fuer weitere Gegenmassnahmen siehe ebenfalls den Wikipedia-Link.

  • Danke - werd mir was überlegen, damit einfach keine sessions von GET/POST aktzeptiert werden

    Übrigens wenn man aufgrund von wirren code session_regenerate_id() mehr als einmal aufruft, verweigert der browser (zumindest FF3) anscheinend mehr als ein PHP Session cookie auf einmal und alle links bekommen eine die session id nachgestellt.

    Dh im Cookie is dann noch eine alte session_id und nur in den links ist die neue id.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!