Autor |
Nachricht |
bigdeal
Threadersteller
Dabei seit: 14.07.2005
Ort: Aßlar
Alter: 40
Geschlecht:
|
Verfasst So 08.01.2006 13:31
Titel Sicherheit von Sessions |
|
|
Hi,
meine Frage heute: "Wie sicher sind Sessions (in php)?"
Kann der User auf Sessionvariablen zugreifen? Ohne den Server zu hacken natürlich, aber wenn ich dem User beim Login einen bestimmten Wert zuteile (Bsp. $_SESSION['status'] = 1), kann der User irgendwie an diese Daten rankommen und ändern?
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst So 08.01.2006 13:48
Titel
|
|
|
Nein, das kann er nicht. Die Gefahr besteht eher darin, dass die Session-ID mehr oder weniger öffentlich zugänglich ist (vor allem, wenn du die Sessionid, was standardmäßig aktiviert ist, in einem keks speicherst). Sensible Daten würd ich in jedem Fall nochmal gegenprüfen. Ich benutz immer ne Funktion isRegUser() oder ähnlich, in der ich noch einmal relevante Daten abgleiche - IP-Adresse (ist aber ebenfalls sinnleer, falls mehrere User an einem Router hängen), sessionid etc..., dazu speicher ich diese Daten bei erfolgreichem Login in meiner Benutzer-Datenbank.
Zuletzt bearbeitet von am So 08.01.2006 13:50, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
bigdeal
Threadersteller
Dabei seit: 14.07.2005
Ort: Aßlar
Alter: 40
Geschlecht:
|
Verfasst So 08.01.2006 22:40
Titel
|
|
|
der tipp mit der ID in der User-DB ist wirklich gut, das werde ich auf jeden Fall umsetzen. Ich prüfe auch nochmal bei allen wichtigen Dingen extra gegenüber der User-DB, ob der Benutzer wirklich berechtigt ist, die Funktion durchzuführen.
Achja, eins noch, kann ich aufgrund der Sessions auch schauen, ob jemand noch online ist? Wie ist das am besten zu berwerkstelligen? (es loggt sich ja nicht jeder User über die Logout Funktion aus). Könnte mit vorstellen, bei jeder Usereingabe die Session IDs gegenüber der User-DB zu prüfen, aber das gibt irgendwann wahrscheinlich den Overkill was SQL-Queries angeht. Geht das auch irgendwie einfacher? Hab Sessions bisher nur zum Speichern von Login Infos verwendet, da muss aber noch mehr mit gehen, wie mit eigentlich allen sinnvollen Erfindungen in Sachen PHP
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst So 08.01.2006 23:59
Titel
|
|
|
Das geht so einfach gar nicht. Wenn der User sich nicht ausloggt, ist er eben noch so lange sichtbar, bis die Session beendet wird. Diesen Timeout kannst du ja festsetzen. Aber die Webseite kann leider nicht riechen, wann der User den Rechner ausmacht, da http nunmal ein zustandsloses Protokoll ist.
Also reicht auch n normaler Vergleich über ne gespeicherte Sessionvariable $_SESSION["isLoggedIn"] oder sowas, ist die Session beendet, verschwindet diese ja automatisch. Willst du allerdings alle eingeloggten Benutzer anzeigen, so empfiehlt es sich, diesen Status in der Datenbank zu speichern und entsprechend abzufragen, da hast du wohl recht... n "normales" DBMS auf nem normalen Rechner sollte das schon verkraften...
|
|
|
|
|
Doppelplusgut
Dabei seit: 06.10.2005
Ort: Zimmer 101
Alter: 55
Geschlecht:
|
|
|
|
|
beeviZ
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 09.01.2006 00:49
Titel
|
|
|
naja. ich hab ne funktion wo alle 90sek n zeitfeld inner db mit dem timestamp des letzten seitenaufrufs aktualisiert wird. wenn die letzte aktion 3min her is wird der user offline gezeigt. ich denk das is ok so.
|
|
|
|
|
dastef
Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 09.01.2006 10:05
Titel
|
|
|
Läuft aber eigentlich auf das Ding vom Schinken raus, nur dass
du den Timeout "künstlich" auf 1 1/2 Minuten runterziehst .. dann
kannste auch den session-Timeout runtersetzen
Genauer wirds deshalb auch nicht wirklich ..
|
|
|
|
|
|
|
|
Ähnliche Themen |
Sessions Problem
PHP-Sessions mit Xampp 1.5.0
Sessions-Problem bei PHP
[PHP] Sessions - Problem
[PHP] Login mit Sessions
problem mit sessions
|
|