Cookies für "Erinnere dich an mich" in JSF

8

Ich habe eine Login-Seite und möchte die "Remember me" -Funktion hinzufügen; Wenn der Benutzer sich abmeldet und die Seite erneut öffnet, werden Benutzername und Passwort geladen. Zu diesem Zweck speichere ich die folgenden Cookies, wenn sich der Benutzer anmeldet (und "sich an mich erinnert"):

%Vor%

Das Problem ist, dass ich später (in derselben Sitzung) die Cookies lese und sehe, dass maxAge = -1; obwohl ich es auf 3600 setze ... warum ist das so? Ein weiteres Problem: Wenn ich den Cookie mit userCookie.setSecure (true) sicher bin, kann ich ihn nicht lesen (er verschwindet).

Noch eine Frage: Da ein Passwort in einem Cookie gespeichert wird, soll ich es dann irgendwie verschlüsseln? Was ist die beste Praxis?

Vielen Dank im Voraus

    
Damian 29.04.2011, 19:17
quelle

1 Antwort

8
  

Das Problem ist, dass ich später (in der gleichen Sitzung) die Cookies lese und sehe, dass maxAge = -1; obwohl ich es auf 3600 setze ... warum ist das so?

Weil der Browser die maxage nicht zurücksendet. Es sendet nur den Cookie-Namen = Wert zurück. Der maxage wird nur im Browser gespeichert. Sie können dies im Cookie Viewer / Editor des Webbrowsers selbst überprüfen. In Firefox zum Beispiel können Sie alle Cookies durch Tools & gt; Optionen & gt; Datenschutz & gt; Entfernen Sie einzelne Cookies . Geben Sie die Domain ein (z. B. localhost), um die Cookies zu sehen.

  

Ein weiteres Problem: Wenn ich den Cookie mit userCookie.setSecure (true) sicher bin, kann ich ihn nicht lesen (er verschwindet).

Es funktioniert nur, wenn die Anfrage / Antwort über HTTPS statt HTTP bedient wird. Wenn die Anforderung bereits über HTTPS bereitgestellt wird, wird sie bereits standardmäßig auf "secure = true" festgelegt.

  

Noch eine Frage: Da ein Passwort in einem Cookie gespeichert wird, soll ich es irgendwie verschlüsseln? Was ist die beste Praxis?

Speichern Sie den rohen Namen / das Passwort nicht in zwei Cookies. Abgesehen davon kann dies leicht in einem einzigen Cookie passieren, das ist eine sehr schlechte Idee und leicht zu hacken. Verwenden Sie ein einzelnes Cookie mit einem automatisch generierten langen, eindeutigen und nicht zu ratenswerten Wert. Speichern Sie diesen Wert zusammen mit der Benutzer-ID in einer Datenbank auf der Serverseite. Wenn jemand Ihre Website mit diesem Cookie aufruft, der Benutzer jedoch noch nicht angemeldet ist (d. H. Es ist kein User -Objekt in der Sitzung vorhanden), können Sie die automatische Anmeldung durchführen.

Siehe auch:

BalusC 29.04.2011, 19:29
quelle

Tags und Links