Login-System: Bestes Prinzip?!

lay-z-cow

Erfahrenes Mitglied
Hi,

ich bins mal wieder mit einer eher prinzipiellen Frage zu php, genauer gesagt zu einem Log-In System.

Was ist denn sinnvoller, sicherer, besser:
- Die Session in der Usertabelle der DB speichern
- Oder die Userdaten in der Session speichern

?

Bisher habe ich immer der ersten Methode den Vorzug gegeben, ähnlich wie es z.B. im Tutorial von Chaosengel_Gabriel -> http://www.tutorials.de/forum/php-tutorials/289098-login-mit-php-und-mysql.html beschrieben ist.

Da ich aber momentan an einer eigenen kleinen Klassensammlung herumschreibe, wollte ich nochmals andere Meinungen einholen, damit das auch ordentlich wird. :)


Gruß

.:lay-z-cow:.
 
Zwischen beiden Methoden gibt es eigentlich keinen funktionalen Unterschied. Was die Zuständigkeit angeht, sollte aber die Benutzer-ID in der Sitzung gespeichert werden und nicht umgekehrt.
 
Also nicht, wie im Tutorial in der User-Tabelle eine Spalte "Session" schaffen?

Sondern lieber eine eigene Tabelle "Sessions" mit Spalte "User_ID"?


Gruß

.:lay-z-cow:.
 
Ich würde beides machen...

Die User_ID in der Session Speichern und die benutzte Session, bei den Daten in der DB.

Da durch hast du die Möglichkeit, nur Daten mit beiden Übereinstimmungen abzurufen.
 
Zuletzt bearbeitet:
Normalerweise speichere ich die Session-ID in der User-Tabelle.
Wenn ich dann etwas User-spezifisches auslesen will, suche ich in der DB nach der Session.

Die Idee von PowerCheat habe ich auch schon errwogen.
 
Das Speichern der Sessionnummer in der Db ist nur dann sinvoll wenn du willst das nicht 2 User gleichzeitig in einem Acount drin sind. Dazu mußt du aber dann auch noch die Prüfroutine schreiben.

Anderen fals macht es keinen sin die Sessionnummer auch in der Db zu speichern.(belastet nur unötig die Db mehr).

Du solltes dir zu erst mal Überlegen was du alles erreichen möchtest und dann wie man das umsetzen kann.

Ps.
Am Sicherheitsten ist immer ein ausgelügeltes System und nicht eine unötige doppel Speicherung.

Mfg Splasch
 
Am Sicherheitsten ist immer ein ausgelügeltes System und nicht eine unötige doppel Speicherung.

Jetzt musste ich schmunzeln ;)


Ich stelle immer wieder fest, das PHP dichter am Alltag ist, als viele vermuten. Wenn du als Besucher eine Fabrik besuchst, kriegst du ein Kärtchen und dein Besuch wird beim Pförtner gespeichert. Streunst du verdächtig über das Firmengelände, kann man über das Kärtchen den Pförtner anrufen, der deinen Grund des Besuches kennt.

t im Alltag, t bei PHP. Bisher hat mir sowas immer beim logischen Vorgehen geholfen :)
 
Hmm...

also einen "Königsweg" kann ich aus den Postings jetzt nicht erkennen. ;)

@splasch: Eigentlich will ich gar nichts hiermit erreichen - es ist zumindest keine aktuelle Problemstellung - denn funktionerien tun ja beide Varianten, sowohl mit, als auch ohne DB.

Mich hat nur mal interessiert, was denn prinzipiell die beste Methode ist. :)

Gruß

.:lay-z-cow:.
 
Mich hat nur mal interessiert, was denn prinzipiell die beste Methode ist.

Die Frage hab ich dir eigentlich schon beantwortet.Es kommt eben drauf an wer die beste Idee dafür hat.
Um das so sicher wie möglich zu machen.
Viele Beispiele findet man in Security Büchern. Dort werden auch die Vor und Nachteile jedes einzelen System geschildert.

Es gibt hier keine Standart Lösung.So wie nach dem Schema ihr müßt das alle so machen dann ist es am Sichersten.Um ein System bwz. Login sicher zu machen muß man mal alle möglichen angriff zenarien kennen um entsprechend dagegen zu reagieren.

Es gibt einige Webseiten die sich nur mit dem Thema beschäftigen. Wo neue Sicherheitslöcher diskutiert werden.(Leider sind die Seiten meisten nur in Englisch verfügbar).

Mfg Splasch
 

Neue Beiträge

Zurück