Login-Script Sicherheit

tcpmux

Grünschnabel
Hallo,
habe mich mal etwas durchs Weg gelesen und festgestellt das es ganz unterschiedliche LoginScript ansätze gibt...

Variante 1 prüft ob Username/Passwort stimmen und setzt dann einen Sessioncookie wie z.B. $_SESSION['login_erfolgreich']=1. Auf den geschützten Seiten wird dann nur gefragt ob login_erfolgreich==1 ist und dann wird der geschützte Content ausgegeben, ansonsten nicht.

Variante 2 speichert User und Pass beim einloggen neben dem login_erfolgreich in einem Sessioncookie und prüft dann im gegensatz zu variante 1 nicht nur beim einloggen in der DB auf korrektheit der daten, sondern dies wird obwohl login_erfolgreich==1 ist auf jeder geschützten seite nochmal durchgeführt. hierzu werden dann die im sessioncookie gespeicherten daten mit der in der DB vergleichen

Also meine Frage jetzt...wenn Sessions doch serverseitig gespeichert werden und vom Client da keine Manipulationsmöglichkeit besteht, warum verwenden dann viele Variante 2? Ein Check am anfang ob user/pass korrekt sind müsste doch reichen, die ändern sich doch nicht alle paar minuten

Und wenn man Variante 2 benutzt, warum wird dann allgemein empfohlen die Passwörter verschlüsselt zu speichern...es heisst immer "klartextpasswörter in der session sind gefährlich..." aber warum wenn sie serverseitig liegt?
 
Die zweite Variante ist schlicht sinnlos. Denn wie du bereits erwähnt hast, lassen sich in Sitzungen gespeicherte Werte nur serverseitig ändern.

Dass Passwörter nicht als Klartext gespeichert werden sollte, hängt mit der Datensicherheit zusammen. Denn niemand außer dem Urheber des Passworts sollte das Passwort in der Ursprungsform zu Gesicht bekommen.
 
hi,

erstmal vorweg:
Passwörter werden IMMER verschlüsselt, egal wo sie sind.

Falls durch unachtsamkeit oder sonst was jemand zugriff auf diese erhält, kann er so nichts damit anfangen.

Zu der sache mit SESSIONs:

Es stimmt, eigentlich ist es überflüssig Benutzerdaten nochmals zu Prüfen,
warum das doch gemacht wird ist warscheinlich eines der großen Rätsel der Natur ^^.

Doch das speichern der Benutzerdaten in der Session ermöglicht es die Daten immer präsent zu haben.
So kann man z.B. SQL-Abfragen zu Benutzerdaten jederzeit erstellen.

Ob du sowas machst oder ob du das brauchst musst du selber entscheiden.

Hoffe dir geholfen zu haben, ansonsten frag einfach nach

MfG
paddz
 
Naja das man Sessions auch wen sie Serverseitig sind nicht ändern kann ist flasch. Viele Leute denken zwar das Sessions eine Festung wären, dem ist aber leider nicht so. Auch Sessions lassen sich modifizieren.
Einmal über Server die nochimmer keinen SafeMode nutzen und dann gibt es noch die unknown and adam_i Methode. Allerdings setzen unkown und adam_i doch schon ein recht großes Wissen vorraus das ich denke mal die meisten User nicht haben. Hier wird ein Fehler in PHP verwendet der es Agressoren ermöglicht über 2 Useraccounts das "gleiche" Script auszuführen und somit die Session, mit Account 2, zu überschreiben und sich dann bei dem Script auf Account eins einzuloggen.
Aber wie gesagt dafür braucht man ein recht großes wissen da man ja nicht mal eben so einen Nutzeracc auf einen Root ertellen kann. Aber es ist möglich.
 
Hallo!
paddz hat gesagt.:
Passwörter werden IMMER verschlüsselt, egal wo sie sind.
Ich hoffe doch das Du Dich hier nur verschrieben hast?!
Denn Passwörter werden nur dann verschlüsselt, wenn man es will.
Daher nehme ich mal an dass Du eher "Passwörter sollen IMMER verschlüsselt werden, egal wo sie sind" meinst.

Nicht dass es hier zu einem Missverständnis kommt. ;)

Gruss Dr Dau
 
hi,

Danke für den Hinweis (darf doch jedem mal passieren, oder? )

Dr Dau hat gesagt.:
Daher nehme ich mal an dass Du eher "Passwörter sollen IMMER verschlüsselt werden, egal wo sie sind" meinst.

genau so war des gemeint ^^.

MfG
paddz
 

Neue Beiträge

Zurück