Denkfehler bei Login mit Session?

kuhlmaehn

Erfahrenes Mitglied
Hi, ich hab mal eine schnelle Verständnissfrage. Ich bin mir nicht so sicher ob ich das richtig geblickt habe :)
Es gibt eine Login Seite, die per Form übergeben Daten, Name und Passwort, mit Daten in der Datenbank vergleicht. Stimmt das passwort wird eine Sessionvariable erzeugt. Da später irgendwo vielleicht etwas stehen soll wie "Guten Tag, -Name-" wird folgendes registriert: $_SESSION['name'] = "Name";
So nun die Frage. Reicht es aus dann folgendes abzufragen um nur eingeloggten bzw. registrierten Usern den Zugriff zu erlauben:
Code:
if (isset($_POST['name'])) {
  // geschützten Bereich zeigen
}
else {
  // Zugriff verweigert
}
Eigentlich müsste das doch reichen oder? Aber andererseits kommt mir das irgendwie unsicher und komisch vor.
Ich hoffe ihr könnt mir hier die Unsicherheit nehmen.
Danke :)
 
Du meinst bestimmt:

PHP:
if (isset($_SESSION['name'])) {
  // geschützten Bereich zeigen
}
else {
  // Zugriff verweigert
}

(einen POST kann man ganz leicht verschicken...)

Jaein:
Wenn du dir ganz sicher bist, dass der Name nicht vorher gesetzt wird, ist dies genau so gut wie ein $_SESSION['login'] = true... aber zum Thema Sessions und Sicherheit gibt es schon tonnenweise Material! Schau dir die Stickies im Forum mal genauer an und such bei Google mal nach "PHP SESSION LOGIN", da kommt sicher was (session_regenerate usw...).
 
ups sorry, klar meinte ich $_SESSION, hatte ich eben nur falsch kopiert...
Kann es denn irgendwie passieren, dass jemand selber Sessionvariaben setzten kann? Dann sollte man vielleicht nicht "name" oder "login" nehmen sondern "asD8fSf8f" oder nicht? :)
Dann werd ich jetzt auch nochmal etwas danach schmökern, dank dir ;)
 
Nein, in die Session kann man, wenn deine Scripts ausreichend gut programmier sind, nicht einfach so schreiben:

Sprich ein $_SESSION['name'] = $_POST['name']; sollte erst dann gemacht werden, wenn du auch ganz sicher bist, dass der User der ist, für wen er sich ausgibt. Ausserdem sollten die Session-Ids (sieht man manchmal an der URL, wenn Cookies deaktiviert sind) vor sogenanntem Session-Hijacking geschützt sein: Jemand anders kann so zugriff auf eine Fremde Session erlangen. Dies kann aber schon z.B. mit einem IP-Vergleich oder dem neu-generieren der Session leicht verhindert werden. Z.B. auf der PHP-Webseite unter Sessions oder hier im Forum oder in den Tutorials findest du viele Beispiele zum Schützen deiner Session.
 
Ok, danke. Also IP-Vergleich ist mir eigentlich zu hart, da zumindest mir schonmal oft die Verbindung abschmiert...
Naja ich werd mal gucken :)
 
Zurück