PHP Login Script mit Session

$_SESSIOn ist einfach nur ein superglobales Array, welches dann glaub ich per serialize in die Session-Datei gespeichert wird.

Wozu speicherst du denn die Session-ID in der Datenbank? Zum Verifizieren, ob die Session auch gültig zum User ist? Wenn ja kannst du auch vor / nach (weiss ich gerade nich genaut) session_start() einfach session_regenerate_id() nehmen, dann ändert er bei jedem Aufruf die Session_ID.
Schöner wäre es natürlich auch MD5() Hashes vom Passwort in der DB zu speichern statt im Klartext. Mit Passwort zuschicken wäre es dann zwar Essig, aber kannst ja einfach eins neu generieren wenns der User mal vergisst...
 
Also das abspeichern der SessionID mache ich einfach nur deswegen damit der User eingeloggt bleibt weil ich mit Cookies noch keine Erfahrungen habe und es mit SessionID für meine Zwecke erst mal gereicht hat.
Ja ich weis mit dem Passwort ist ned so jut ^^ Normalerweise ist voll normal das man das in MD5 speichert aber war nurn Projekt als Aufgabe es musste nur die Funktionalität gewährleistet sein da hab ich einfach mal losgelegt ohne die Aspekte der Sicherheit und so zu beachten.
Die SessionID wird ja eh jedesmal neu generiert wenn der Browser aufgerufen wird. Dann einzige Sicherheitsrisiko was ich bis jetzt mitgekriegt ahbe istw enn man ein Browser hat der mehrere Fenster in einem Fenster öffnen kann und nur die Seite schliesst das Browserfenster aber noch offen ist. Dann gelangt man in den Loginbereich. In diesem fall muss der Brwoser komplett geschlossen werden.
 
Zuletzt bearbeitet:
thx dudes :)

Noch eine Frage zum Schluss.

Wenn ich jetzt noch ne mysql Abfrage mit dem gespeichertem usernamen machen möchte. Geht dann:


PHP:
select * from TABELLE where USERFELD=$_SESSION['userlogin']

geht das so? :)
 
Zuletzt bearbeitet:
würde gehen.
Damit du mit den '' keine Proleme bekommst dann etwa so

PHP:
 mysql_query(" select * from TABELLE where USERFELD='$_SESSION[userlogin]' ") or die ('Fehler: '.mysql_error());

Also das abspeichern der SessionID mache ich einfach nur deswegen damit der User eingeloggt bleibt weil ich mit Cookies noch keine Erfahrungen habe und es mit SessionID für meine Zwecke erst mal gereicht hat.
Dafür reicht es doch einfach bei jedem Aufruf die session_id() an die URL dranzu hängen oder bei forumlaren als hidden-input mitzuliefern...
Cookies vermeide ich i.d.R. je nach Anwendungsfall

Die SessionID wird ja eh jedesmal neu generiert wenn der Browser aufgerufen wird.
Ja schon aber mit session_regenerate_id() wird bei jedem Aufruf der Seite bzw. von dieser Funktion die session_id() neu generiert.
Sinnvoll beispielsweise wenn ein User in deinem Loginbereich ist und mit ***** MSIE surft und ein neues Fenster aufmacht, hängt automatisch die Session_ID (sofern nicht als cookie) an der URL. Im Log der Zielseite könnte man das nachlesen oder via referer auslesen und ohne login in deinen sicheren Bereich. Das ganze würde aber nicht gehen wenn in der Zwischenzeit die id neu generiert wurde.

Dann einzige Sicherheitsrisiko was ich bis jetzt mitgekriegt ahbe istw enn man ein Browser hat der mehrere Fenster in einem Fenster öffnen kann und nur die Seite schliesst das Browserfenster aber noch offen ist. Dann gelangt man in den Loginbereich. In diesem fall muss der Brwoser komplett geschlossen werden.

Also Tabbed-browsing wie mit Netscape, Firefox, Mozilla, Opera und co?
Eigentlich nicht automatisch. Es gab aber bei NS und co eine Sicherheitslücke das man "quer" über die Tabs zugreifen könnte...
 
Naja wie gesagt so langsam verlier ich die Übersicht ^^ Ich hab da auch nicht soviel Erfahrung ich glaube mein damaliges Problem war das ich irgendwie das man nicht einfach zugreifen sollte auf seiten im geschützten Bereich dazu muss ich ja testen ob der User eingeloggt ist bzw. berechtigt ist die Seite aufzurufen. Dabei habe ich dann die SessionID mit der in der DB verglichen wenn keine Übereinstimmung gefunden kommt eine Hinweismeldung und wenn eine Übereinstimmung gefunden wurde wird die Seite dargestellt.

Also wenn de dir das ganze mal angucken möchtest

http://aufgabenpool.projekt-x2005.de/

der direkte link zur Suchseite wäre (auf die man allerdings ohne Login eigentlich ned zugreifen dürfte)

http://aufgabenpool.projekt-x2005.de/search.php

Logindaten schicke ich dir mal per PN
 
Achso, naja du kannst aber auch einfach in die Session schreiben das der User eingeloggt ist und brauchst dann nicht die session_id is der DB holen.

search.php gibts wohl auf dem Server nicht ;)
Aber den rest machen wir per PM wird sonst zu OT
 
Zurück