Holladiewaldfee,
Ein Beispiel-Script mit dem das ganze (zumindest oberflächlich und zumindest bei mir)hervorragend funktioniert:
Solange nicht zwei User gleichzeitig mit dem gleichen Benutzernamen angemeldet sind ... Spätestens dann bekommst Du nämlich Probleme, da sich dann zwei Benutzer die gleiche Session "teilen" müssen.
- Ich kann über die Session einen Login-Timeout festlegen
Ja, kannst Du ... Bloß was ist, wenn der Timeout abläuft und der User nochwas vergessen hat? Einloggen kann er sich ja nicht mehr, weil er jedesmal wieder die abgelaufene Sessino zugewiesen bekommt.
- Der Angreifer weiß nicht dass es überhaupt eine Session gibt(!!!)
? Wie kommst Du da drauf? So weit ich weiß schickt session_start() wenn möglich gleich ein Cookie an den Browser.
- Die "sessionID" wird _nirgendwo_ aus Versehen geloggt, das Passwort schon gar nicht
Sicher? Soweit ich weiß hat PHP eine Funktion (magic_irgendwas), die im Fall der Fälle (wenn das Cookie nicht angekommen ist) die SessionID an jeden Link anhängt. Dann kann die ID wie woanders auch ohne Probleme in den LogFiles hängen bleiben. Nur, daß sie in Deinem Fall ohne Passwort natürlich nicht mehr sooo nützlich ist (dafür steht aber ein mit Sicherheit gültiger Benutzername drin!)
- Session läßt sich auf einem anderen PC übernehmen
Das ist ein Vor- und ein Nachteil ... wie schon gesagt.
Ist das evtl. doch unsicher, oder würdet Ihr das aus einem anderen Grund nicht so machen?
Naja ... ich sehe keinen echten Vorteil darin, außer daß man einen gültigen Usernamen preisgibt. So eine 32-stellige (oder wieviel auch immer) ID dürfte nicht zu erraten sein. Wenn, dann nur über LogFiles oder durch (wie auch immer geartetes) Abhören der Verbindung ...
Ciao,
Harry
(There are only 10 types of people in this world: Those who understand binary and those who don't)