WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   PHP Sessions (http://www.wcm.at/forum/showthread.php?t=150118)

hurt 11.11.2004 20:34

PHP Sessions
 
hallo

ich habe eine frage zu PHP sessions

also ich hab eine datenbank mit user & passwort.
der user meldet sich an und die session-variable wird zum username.
die session-variable bleibt dann so lange der username bis er sich mit session_destry() ausloggt.
reicht das als ueberpruefung ob er angemeldet ist auf den folgeseiten und ist das auch sicher?

danke
michi

T.dot 11.11.2004 20:54

Reichen wirds wohl, bis auf das Problem, das immer wieder auftritt (korrigiert mich wenn ich mir irre), dass Sessions nicht komplett gelöscht werden, wenn falsch eingestellt und Browser geschlossen, etc.

Sicher kommt mir das ganze aber nicht vor, ich würds eher so lösen, das neben dem Usernamen noch ein zufällig generierter Key übergeben wird, der gleichzeitig in ner Datenbank hinterlegt wird. Beim Seitenaufruf würd ich dann überprüfen ob zum Usernamen der Key in der Datenbank passt und passta - wennst lustig bist kannst natürlich noch usernamen verschlüsseln und so, ein maximum an sicherheit wirst mit sessions alleine halt nicht erreichen (meiner meinung) - fragt sich halt immer für welchen anwendungszweck die spielerei is...

mfg Thomas

Potassium 11.11.2004 20:56

imho nicht.
1.) musst du aufpassen, dass entweder register_globals auf OFF ist oder du bei JEDEM seitenaufruf prüfst ob session_user und session_pw mit dem aus der datenbank übereinstimmen.
2.) pw in der session als md5() hash speichern
3.) statt benutzernamen lieber eindeutige benutzerid nehmen

hurt 11.11.2004 21:05

@T.dot

was meinst du mit zufaellig generiertem key?
ein string der bei der REGISTRATION der users generiert wird und in der db gespeichert wird? oder ein string der JEDESMAL wenn er sich EINLOGGT generiert wird und in die datenbank gespeichert wird und zur ueberpruefung gilt?

Potassium 11.11.2004 21:08

Zitat:

Original geschrieben von hurt
@T.dot

was meinst du mit zufaellig generiertem key?
ein string der bei der REGISTRATION der users generiert wird und in der db gespeichert wird? oder ein string der JEDESMAL wenn er sich EINLOGGT generiert wird und in die datenbank gespeichert wird und zur ueberpruefung gilt?

ich denk jedesmal.

hurt 11.11.2004 21:20

aber ...

"Die Daten zu solch einer Sitzung werden unter der Kennnummer auf dem Webserver abgelegt. Die Vorteile: Es gibt keine Begrenzung der Datenmenge, die Daten sind sicher bzw. korrekt und die Daten müssen nicht per <input type="hidden" ... > dauernd zwischen Browser und Webserver hin- und hergeschickt werden, womit sich die Sicherheit gegen Datenmanipulation erhöht."

reicht es dann nicht wenn kein user eingeloggt ist dass die session-variable leer ist und so der seitenaufruf verhindert wird? und wenn ich dann einen eingeloggten user hab (auch wenn er die seite zu macht, ist er dann halt wieder eingeloggt, das will ich eh so) kann er die seite aufrufen (also wenn die session-variable gleich einem user ist den es in der datenbank gibt - die ueberpruefung des passworts kommt eh beim login).

Potassium 11.11.2004 21:26

Zitat:

Original geschrieben von Potassium
imho nicht.
1.) musst du aufpassen, dass entweder register_globals auf OFF ist oder du bei JEDEM seitenaufruf prüfst ob session_user und session_pw mit dem aus der datenbank übereinstimmen.
2.) pw in der session als md5() hash speichern
3.) statt benutzernamen lieber eindeutige benutzerid nehmen

ajo und ne eigentschaft von sessions ist, dass wenn du den browser zu machst, die session ungültig wird.

hurt 11.11.2004 21:40

aber wenn ich den browser schließe und dann die seite wieder aufrufe bin ich noch immer eingeloggt

Potassium 11.11.2004 21:42

Zitat:

Original geschrieben von hurt
aber wenn ich den browser schließe und dann die seite wieder aufrufe bin ich noch immer eingeloggt
welcher browser?
wie machst du sessions?
mit setcooke() oder mit session_register()/$_SESSION[] = "";

hurt 11.11.2004 21:47

session_start();
session_register('sessionuser');

if($do=="logout") {
session_unregister('sessionuser');
session_destroy();
}


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag