hilfdirselbst.ch
Facebook Twitter gamper-media
Pozor  M 
Beiträge: 892
5. Apr 2004, 16:00
Beitrag #1 von 3
Bewertung:
(474 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Sessionmanagement


Hallo,

Ich bin wieder mal soweit, dass ich mein Sessionmanagement neu
überdenke.
Bis anhin funktionierte es folgendermassen:

Die Session wurde entweder über cookies oder der URL verfolgt.
Dies jenachdem, was der User unsterstützt.
Es ist eine datenbankgestütze Anwendung, und ist eine Klasse,
die absolut ohne PHP-Sessionfunktionen auskommt (pure Absicht ;0) ).

Nun ich habe keinerlei Sicherheitsaspekte in diese Löung
implementiert.

Nun meine idee ist folgende:

Ich werde das Sessionmanagement neu schreiben mit folgenden Zielen:

2 (4) verschiedene "Betribsarten":

Session: normal mit oder ohne Cookies (secure=off)

Normale session Db basiert (wie bis anhin)


Session: secure ohne cookie

zusätzliche Überprüfung und speicherung der:

IP ($_SERVER['REMOTE_ADDR'])
Useragent (Browser) ($_SERVER['HTTP_USER_AGENT'])


Session: secure mit cookie

zusäztliche setzung eines cookies mit einem md5 hash (dyn. generiert)
-> der nur ein reload lang gültig ist
-> es wird bei JEDEM laden ein neues cookie gesetzt
und in der Db gespeichert.


Informationen um Validität zu überprüfen:

Useragent:
Es sind nicht sehr viele verschiedene Browser im gebrauch,
oder nur sehr wenige, die sehr oft benutzt werden.
Die Chance ist hoch das der Eindringling den selben Browser benutzt,
oder sich diesen installieren kann.

IP:
Problematisch ist, dass User hinter einem Router alle die gleiche
IP im Internet haben.
Auch dass sich die IP dynamisch ändern kann ist ein Problem,
da die Session dann ungültig wird. Ein Nachteil, den man akzeptieren muss.

SessionID per URL:
Sehr einfach zu entwenden/misbrauchen, doch nötig für Systeme/User,
die keine Cookies unterstützen.

SessionID per Cookie:
Bessere sicherheit gegen misbrauch als Lösung über URL, doch kein absoluter
Schutz gegen Misbrauch, da es eine Leichtigkeit ist Cookies zu kopieren.

Session Cookie mit dynamisch generiertem sicherheits Hash:
Erhöht die Sicherheit der Session enorm, da die SessionID durch ein
Sicherheitshash (32 zeichen) geschützt wird. Dieser verändert sich
bei jedem Laden einer Page.
Es ist also sehr viel schwieriger die SessionID zu erlangen und das
Sicherheitscookie, befor der User die nächste Seite lädt.


Was meint ihr zu diesem Ansatz? Ev. noch bessere Ideen? Kritik?
Andere Ansätze? Alles willkomen!

greez Pozor

Stillstand ist Rückschritt!
(Dieser Beitrag wurde von Pozor am 5. Apr 2004, 16:05 geändert)
Top
 
X
Miro Dietiker
Beiträge: 699
5. Apr 2004, 20:45
Beitrag #2 von 3
Beitrag ID: #78528
Bewertung:
(474 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Sessionmanagement


Kurze Antwort von mir punkto dynamische Hashgenerierung:

Ein Ansatz, der schnell zur Diskussion steht. Man muss ihn aber
einmal von der praktischen Seite her sehen!
Passiert ein langsames Reload, unterbricht der Benutzer und ladet
neu -> TOT
Nicht ganz optimale Navigation in einem Script: Benutzer versucht
mit BACK und fertiglustig.. ACHTUNG, selbst bei noch so ausge-
klügelten Navigationsstrukturen passiert es, dass in gewissen
Situationen die Links zu den entsprechenden Nebenansichten nicht
so optimal sind..

Wenn schon, muss man einen fifo-Puffer der vergangenen hashes
führen und bsp. jeweils die letzten N erlauben..
Als eine vernünftige Zahl für N würde ich (min) 3 bezeichnen..
Beachte im speziellen, dass beim Arbeiten mit Frames das Ganze
in die Hosen gehen kann!!!

Das mitführen von Session-ID's passiert je nachdem mit Cookies oder
via URL.. Entsprechend kann auch mit einer solchen dynamischen
Session-ID verfahren werden..

CU Pozor! Miro Dietiker
als Antwort auf: [#78490] Top
 
Pozor  M 
Beiträge: 892
5. Apr 2004, 23:54
Beitrag #3 von 3
Beitrag ID: #78552
Bewertung:
(474 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Sessionmanagement


Salle Miro,

Ich glaub du hast nicht ganz mitbekommen, wie mein System
funktionieren sollte.

Der Hash wird in einem cookie gespeichert und nicht
mittels url append weitergegeben. Also kein Problem, wegen
Backbutton im Browser. Langsames laden sollte auch kein Problem sein,
da die Cookies am Anfang (header) gesetzt werden.

Dies ist natuerlich nur moeglich, wenn der User cookies unterstuetzt.
Ohne cookies wird nach obiger idee auf dynamische hash's verzichted.

Greez Pozor

PS: links nicht optimal? was genau meinst du damit?
als Antwort auf: [#78490]
(Dieser Beitrag wurde von Pozor am 5. Apr 2004, 23:57 geändert)
Top