Ich weiß, ein endloses Thema... aber ich glaube ich habe das Prinzip noch nicht vollständig verstanden.
Letztlich brauche ich ein System, um Redakteuren ein Login bzw. Zugang zum Admin-Menü zu ermöglichen. Deshalb eben Sessions.
1) Meine erste grundsätzliche Frage: Wieso kann ich beim Login nicht z.B. einfach Benutzername und Passwort überprüfen und dann die IP in der Datenbank speichern? Befindet sich die IP eines Nutzers in der DB, so ist der Nutzer eingeloggt und kann z.B. Artikel schreiben. Beim ausloggen wird die IP gelöscht. Somit wären alle Daten immer beim Server und nicht beim Client... Wo ist hier aus Gründen der Sicherheit der Haken?
Ich habe in vielen Anleitungen im Internet gesehen, dass Benutzername und Passwort in der Session gespeichert werden. Ich halte das für völlig falsch, da das Passwort dadurch ja auswertbar ist.
Ich würde es grundsätzlich so handhaben, dass Passwörter als Hash und AES-verschlüsselt in der DB gespeichert werden. Dieses wird abgeglichen und dann ein Wert z.B. eingeloggt=true in die Session schreiben.
2) Ist das überhaupt sicher? Ich habe das Gefühl, dass sich jeder einfach sein "eingeloggt=true" selbst schreiben kann und dann Zugang zu den Bereichen bekommt.
2b) Muss bei einer sensiblen Aktion immer wieder irgendwie der Nutzer legitimiert werden? Wenn ja, wie, da das Passwort wie gesagt nicht in der Session steht
3) Zugriffsberechtigung: Eigentlich möchte ich verschiedene Berechtigungen setzen, d.h. ein Redaktuer hat den zugriff=1, ein anderer zugriff=2 und somit mehr Rechte. Wenn ich das genauso in die Session schreibe, dann könnte man sich doch viel zu leicht eine höhere Berechtigung setzen, oder?
Letztlich brauche ich ein System, um Redakteuren ein Login bzw. Zugang zum Admin-Menü zu ermöglichen. Deshalb eben Sessions.
1) Meine erste grundsätzliche Frage: Wieso kann ich beim Login nicht z.B. einfach Benutzername und Passwort überprüfen und dann die IP in der Datenbank speichern? Befindet sich die IP eines Nutzers in der DB, so ist der Nutzer eingeloggt und kann z.B. Artikel schreiben. Beim ausloggen wird die IP gelöscht. Somit wären alle Daten immer beim Server und nicht beim Client... Wo ist hier aus Gründen der Sicherheit der Haken?
Ich habe in vielen Anleitungen im Internet gesehen, dass Benutzername und Passwort in der Session gespeichert werden. Ich halte das für völlig falsch, da das Passwort dadurch ja auswertbar ist.
Ich würde es grundsätzlich so handhaben, dass Passwörter als Hash und AES-verschlüsselt in der DB gespeichert werden. Dieses wird abgeglichen und dann ein Wert z.B. eingeloggt=true in die Session schreiben.
2) Ist das überhaupt sicher? Ich habe das Gefühl, dass sich jeder einfach sein "eingeloggt=true" selbst schreiben kann und dann Zugang zu den Bereichen bekommt.
2b) Muss bei einer sensiblen Aktion immer wieder irgendwie der Nutzer legitimiert werden? Wenn ja, wie, da das Passwort wie gesagt nicht in der Session steht
3) Zugriffsberechtigung: Eigentlich möchte ich verschiedene Berechtigungen setzen, d.h. ein Redaktuer hat den zugriff=1, ein anderer zugriff=2 und somit mehr Rechte. Wenn ich das genauso in die Session schreibe, dann könnte man sich doch viel zu leicht eine höhere Berechtigung setzen, oder?