Andreas Korthaus: "echte" Login-Session mit HTTP?

Beitrag lesen

Hallo!

Jein. Wenn Du eine Session-Variable hast, $_SESSION["timeout"]=1984944797 (oder so), und Du frägst diese Variable dann ab ... dann kann sich der User nicht(!) neu anmelden weil er immer wieder dieselbe Session bekommen würde.

Ich "fräge" überhaupt nix ;-)
Ich habe session-cache.timeout gemeint, da muß ich nichtmal in die session eingreifen! Aber trotzem wäre es besser Deine Variante mit einem Timestamp in der Session, nur verstehe ich da das Problem nicht! Der Timeout soll doch nur dazu führen dass der User sich neu anmelden muß. Wenn die Zeitdifferenz zwischen time() und $last_request_timestamp halt größer als 60x10, dann wird ein 401-Header gesendet und der Gute muß sich neu anmelden. Gleichzeitig muß ich natürlich diesen alten Timestamp aus der Session löschen, denn sonst kommt er nicht mehr rein. Aber das ist ja kein Problem, man kann sich ja hier einen sehr schönen Mechanismus bauen.

ich da aber noch eine Frage zur Umsetzung:

  • Ich will das wie bei der normalen HTTP-AUTH durch den Apache nach dem 3. Fehlversuch kein 401 sondern eine Fehlerseite gesendet wird. Wie mache ich das? Vermutlich macht der Apache das über die IP, d.h. er loggt die IPs mit Zeit und Anzahl an Versuchen oder? Kommt mir so umständlich vor! Da muß ich auf ale Fälle was mchen gegen Brute-Force.

Also, wenn Du's so machst wie im Rest beschrieben ... dann sind einige Vorteile wirklich nicht von der Hand zu weisen :-)

Ich muß mal ein wenig weiter nachdenken - ob es mir überhaupt einen Vorteil bietet - mal schaun!

Aber wenn Du eh HTTPS verwendest ... warum soll das Cookie dann böse sein (wenn die Session sowieso einen Timeout besitzt?)

Nicht jeder akzeptiert cockies.

(PS: Ich fahr jetzt in Urlaub ... deswegen werd ich wohl keine Antwort mehr schreiben können)

Dann mal viel Spaß und einen guten Rutsch!

Grüße
Andreas