Sicheres Loginsystem inkl. Sessions für Gäste, etc

B

BartTheDevil89

Guest
Hallo,

ich bin gerade dabei mir ein Script zu erstellen. Allerdings komm ich jetzt beim Thema Loginscript in Probleme, bzw. eben die Frage nach der Sicherheit. Denn ich möchte ein Sessionsystem, das auch Gästen eine Session zuordnet...also jeder der kommt bekommt ne Session und wenn der Login korrekt war, wird in der Session dann die Userid gespeichert. Ich habe mir das wiefolgt gedacht:

1. eine Datenbank. id ist die id, die dann die Session identifiziert. lastactivity ist immer die Zeit als zum letzten mal überprüft wurde, ob die ID noch genutzt wird. Userid ist entweder 0 für Gast oder ne ID für einen User später. Und Gruppe gibt an in welchem Usergruppe der Besucher ist.(gibt später an, was der User darf, bzw. eben ein Gast). IP eben die IP des Users.
id/lastactivity/userid/gruppe/ip

2. Besucher betritt die Seite
der Besucher war noch nie da. Damit wird ein Eintrag in der Daten erstellt mit userid = 0 und gruppe = 0, ip = die ip und last activity eben die Zeit. diese ID des Eintrages wird dann unter $_SESSION[id] gespeichert.

3. der Besucher ruft eine zweite Seite auf
die $_SESSION[id] wird der Session in der Tabelle zugeordnet und es sind damit die Daten verfügbar. Sollte die id in der Datenbank nichtmehr vorhanden sein(weil Session nichtmehr gültig ist oder $_SESSION[id] nicht vorhanden ist; siehe Punkt 5) wird einfach ne neue erstellt.

4. bei Userlogin: Wenn sich ein User einloggt steht ja auch die id der Session fest, die ihm vorher zugeteilt wurde. Wenn dann der Login erfolgreich war, wird in der Session die Userid eben auf die des Users geändert und die Spalte Rechte auch.
- wenn sich ein User ausloggt, eben das gleiche

5. Im Hintergrund laufen dann ein paar automatische Funktionen
- alte Sessions leeren: Die Besuchersessions werden nach einer Zeit von 2 Stunden seit der letzten Aktion (ist ja über lastactivity feststellbar) gelöscht. Damit verfällt ja dann auch $_SESSION[id], weil ja kein passender Eintrag in der DB mehr ist
- automatsiches Ausloggen: Usersessions also Sessions von eingeloggten Usern, werden nach einer Zeit von 20 Minuten seit der letzten Aktion gelöscht.

6. Problem mit "Eingeloggt bleiben":
Es gibt ja die Funktion "Eingeloggt bleiben", also es darf dann die Session in der Datenbank nicht gelöscht werden(kann ich ja durch ne neue datenbankspalte machen, die dann 1 ist und somit vom automatischen Ausloggen nicht betroffen ist). Aber wie speichere ich dann die id auf dem Computer am besten und vor allem sichersten? Cookie?

Daher eben meine Frage: Was würdet ihr an diesem System als kritisch ansehen? Bzw. wo sind Möglichkeiten es sicherer zu machen?
 
Zurück
Oben