Ein paar Fragen zu Sessions.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufruf
benutzername
cross
daten
dauernden fragerei
einfhrung
gruss
gltigkeit
hacker
identifizierung
jeweilige session
letzte aktion
login
luecke
normalerweise
session
sinnen
speicher
user
wert mal
-
Moin Leute,
ich bin mal wieder auf einige Fragen, bzw. Probleme gestoßen. Ich hoffe ich geh euch noch nicht auf den Keks mit meiner dauernden Fragerei.
Also erstmal allgemein zu den Sessions:
Wenn ich ein LogIn-System bastele, und da die User-Daten immer in einer Session speichere, dann gilt die jeweilige Session doch immer nur für den User, der auch grade die Seite aufgerufen hat, bzw. sich eingeloggt hat, oder ?
Haben die Sessions eine ID, die man irgendwie herausfinden kann, oder muss man denen selbst eine zuordnen ?
Ich dachte mir das so:
1.) User loggt sich ein, Daten werden in Session gespeichert und auf jeder Seite wird überprüft ob Daten vorhanden und korrekt.
2.) Beim LogIn wird ein Timestamp in die DB geschrieben, der bei jedem Seitenaufruf aktualisiert wird. Zusätzlich wird adnn immer vorher überprüft wie lang der aktuelle Seitenaufruf vom letzen her is. Sind das z.B. mehr als 2 Stunden wird die Session beendet.
3.) Zur Identifizierung der Session würd ich gern immer die ID der Session speichern. Hab da mal irgendwie was drüber gelesen.
4.) Wenn man die ID der Session hat, kann man dann gezielt diese Session benutzen mit z.B. session_start(Session_id) ? Und dann, wenn die letzte Aktion länger als xxx Sekunden her ist session_destroy(Session_id) ?
Oder macht das garkeinen Sinn mit der ID ?
Greetz,
Aza -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
einer Session wird automatisch eine Id zugeordnet, die du mit der funktion "session_id()" ausfindig machen kannst!
Die Session gilt auch immer nur für den user, der sich gerade eingeloggt hat, allerdings solltest du aufpassen, dass niemand die session-id eines anderen users herausfinden kann, da er durch diese auf die daten des users zugreifen kann!
Allerdings wird ein aufruf der session immer nur mit "session_start()" gestartet, das heißt ohne die gezielte nutzung der session.
Die Session wird normalerweise automatisch beendet, wenn der user den browser schließt, das mit den 2stunden könntest du allerdings mit "session.cookie_lifetime" oder "session.gc_maxlifetime" realisieren, da bei "session_start()" ja automatisch ein Sessioncookie gesetzt wird, normalerweise mit namen "PHPSESSID", je nach serverkonfiguration.
Hier auch noch mal eine Einführung: http://www.php-faq.de/q/q-sessions-wie.html
gruss computerfreak12 -
Hach, Computerfreak, du bist echt Gold wert. Mal wieder präzise genau die Antworten gegeben, die ich brauchte.
Also wenn die Session automatisch die Gültigkeit verliert, wenn der Browser geschlossen wird, dann ist das eigentlich supi, dann brauch ich ja garnix für irgendwelche Gültigkeiten mehr zu scripten.
Aus dem Link, den du mir geschickt hast ging aber für mich hervor, dass man den Inhalt einer Session garnicht herausfinden kann, sondern, dass das alles nur Serverseitig gespeichert/ausgeführt wird.
Inwiefern muss ich da aufpassen, dass kein User die Session-ID eines anderen herausfindet ? Bzw. wie soll das gehen ? :> -
Hi,
naja also auf Sessiondaten kannst du ja mithilfe von $_SESSION["Irgendwas"] zugreifen.
Und wenn du etwas in die Session aufnehmen willst, geht das einfach so:
$_SESSION["benutzername"] = $_POST["benutzername"];
Oder meinst du etwas anderes?
Zum Herausfinden der Session-Id:
Wenn man z.B. eine XSS-Lücke in seiner seite hat, kann ein hacker das ausnutzen, um über diese lücke den sessioncookie des eingeloggten users zu speichern, indem ja die sessionid gespeichert ist, und kann über diese auf die daten des users zugreifen! Natürlich nur solange, wie die id noch gültig ist, also wenn der user den browser schließt, und die sessionid ungültig wird, kann der hacker auch nichts mehr mit seiner sessionid anfangen!
Jetzt auch noch mal was zu XSS in Wikipedia: http://de.wikipedia.org/wiki/Cross-Site_Scripting
gruss computerfreak12 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage