2012-11-01 8 views
6

Ich verwende SSL, um alle Daten zu übertragen. HTTP ist vollständig deaktiviert. Kurz vor Malware oder dem Zugriff auf eine physische Maschine (die auf der Serverseite sehr schwer zu verhindern sind), sehe ich nicht, wie ein Angreifer einen Login-Cookie stehlen könnte.Stehlen "erinnere mich an mich" Cookies eine gültige Bedrohung?

Ist es also in Ordnung, sich keine Gedanken über den Diebstahl eines Login-Cookies zu machen?

Die Komplexität der Implementierung eines nicht-stehlbaren Anmelde-Cookies, das Benutzern weiterhin Sitzungen in verschiedenen Browsern und auf verschiedenen Computern ermöglicht, ist höher als das zu schützende Material.

Daher glaube ich, dass es in Ordnung ist, nicht davor zu schützen, Cookie-Daten von Maschine zu Maschine kopieren und einfügen.

Ist das ein gültiger Kompromiss, oder vergesse ich hier etwas Kritisches?

+1

Die OWASP Leute haben einige Sitzung Cookie-Beratung [hier] (https://www.owasp.org/index.php/Session_Management_Cheat_Sheet#Cookies) – pd40

+1

Oh, ich wollte mit OWASP - guten Ruf, @ pd40. –

Antwort

3

Sie müssen sicherstellen, dass das Flag Secure auf Ihrem Cookie gesetzt ist, da Sie nicht generell verhindern können, dass Personen versuchen, auf Ihre Website über nicht-SSL zuzugreifen. Ansonsten glaube ich, dass du in Ordnung sein solltest.

Das sagte, würde ich vorschlagen, angemessene Vorsichtsmaßnahmen zu treffen. Zum Beispiel:

  • Niemals irgendwelche Daten in Cookies oder auf der Leitung, die verwendet werden könnte, um das Passwort des Benutzers abzuleiten.
  • Wenn möglich, setzen Sie das Kennzeichen HttpOnly auf vertrauliche Cookies, damit potenziell nicht vertrauenswürdiges JavaScript diese nicht stehlen kann.
+0

Wenn ich versuche, über HTTP auf die Site zuzugreifen, wird versucht, das Login-Cookie zu senden? – Alan

+0

Wenn Sie das Kennzeichen Sicher nicht setzen, dann ja. Normalerweise senden Browser Cookies bei jeder Anfrage, die mit der Domain und dem Pfad übereinstimmt, unabhängig vom Schema. –

1

Ja, it's a valid threat.

Ein "remember me" -Cookie stellt per Definition die Sicherheit Ihres Webdienstes außer Kontrolle. Nun kann sich im Allgemeinen jeder (besonders ein ausgefuchster Angreifer), der diesen Cookie entführen kann, als dieser Benutzer anmelden.

Nehmen wir ein Beispiel aus der Praxis: Google verwendet ähnliche Cookies für seine Dienste. Sie können wochenlang eingeloggt sein. Wie ich festgestellt habe, wird die Cookie-Diebstahl-Attacke durch die Ungültigmachung des Cookies minimiert, wenn verdächtige Aktivitäten auf der Serverseite entdeckt werden. Zum Beispiel, wenn ich normalerweise von Kalifornien aus angemeldet bin und ich mich plötzlich aus einem anderen Land/Land anmelde (oder gleichzeitige Sitzungen von woanders habe!), Werde ich möglicherweise ausgeloggt und gezwungen, mich erneut zu authentifizieren. Natürlich nicht narrensicher, aber Nutzungsmuster könnten verwendet werden, um einige Angriffe zu vereiteln.

Denken Sie auch daran, dass ein Cookie Browser-spezifisch sein wird. Wenn beispielsweise der Browser-Fingerabdruck verwendet wurde, um festzustellen, dass der Benutzer sich gerade von einem anderen Betriebssystem/Browser/etc angemeldet hat, könnte dies ein guter Zeitpunkt sein, um den Cookie ungültig zu machen. Vielleicht könntest du dir etwas einfallen lassen und dir einen gewissen Freiraum lassen, wenn die Nebenversion eines Browsers aktualisiert wird, aber wenn die Browserversion jemals heruntergestuft wird, kannst du sie als abstufen.

+0

> "Jeder (besonders ein ausgeklügelter Angreifer), der diesen Cookie entführen kann, kann sich als dieser Benutzer anmelden." Eine andere Möglichkeit, meine Frage zu formulieren, ist: Gibt es andere Möglichkeiten, wie ein Angreifer eine Sitzung entführen kann?Sind sie alle schützenswert? – Alan

+0

Ja, wenn du die Wiki-Seite liest, wirst du andere Methoden mit unterschiedlichem Entwicklungsgrad sehen, wie SSL-Man-in-the-Middle-Angriffe usw. Aber ehrlich gesagt, es klingt für mich wie in deinem Fall, sie sind nicht Es lohnt sich, davor zu schützen. Wenn dies der Fall wäre, würden Sie nicht von einem "Remember Me" -Cookie sprechen, da Sie möchten, dass sich Ihre Benutzer jedes Mal mit ihrem Passwort anmelden. Sie sprechen über die Verwendung von SSL-Client-Zertifikaten zur Authentifizierung Ihrer Clients. Aber Sie sprechen über Benutzerfreundlichkeit. Also ist es das wahrscheinlich nicht wert. – mpontillo

+0

Ich bin nicht vertraut mit SSL-MITM. Nach meinem Verständnis von MITM-Angriffen verhindert SSL vollständig MITM. – Alan

Verwandte Themen