![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() |
![]() 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
____________________________________
...::: www.nineinchnails.at - Perfect Little Dream :::... |
![]() |
![]() |
![]() |
#2 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() 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 |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() |
![]() 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 |
![]() |
![]() |
![]() |
#4 |
Veteran
![]() |
![]() @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?
____________________________________
...::: www.nineinchnails.at - Perfect Little Dream :::... |
![]() |
![]() |
![]() |
#5 | |
Inventar
![]() |
![]() Zitat:
|
|
![]() |
![]() |
![]() |
#6 |
Veteran
![]() |
![]() 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).
____________________________________
...::: www.nineinchnails.at - Perfect Little Dream :::... |
![]() |
![]() |
![]() |
#7 | |
Inventar
![]() |
![]() Zitat:
|
|
![]() |
![]() |
![]() |
#8 |
Veteran
![]() |
![]() aber wenn ich den browser schließe und dann die seite wieder aufrufe bin ich noch immer eingeloggt
____________________________________
...::: www.nineinchnails.at - Perfect Little Dream :::... |
![]() |
![]() |
![]() |
#9 | |
Inventar
![]() |
![]() Zitat:
wie machst du sessions? mit setcooke() oder mit session_register()/$_SESSION[] = ""; |
|
![]() |
![]() |
![]() |
#10 |
Veteran
![]() |
![]() session_start();
session_register('sessionuser'); if($do=="logout") { session_unregister('sessionuser'); session_destroy(); }
____________________________________
...::: www.nineinchnails.at - Perfect Little Dream :::... |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|