it-swarm-eu.dev

Wie kann sichergestellt werden, dass Cookies bei Verwendung von ASP.NET unter IIS 7.5) immer über SSL gesendet werden?

Firesheep hat das Problem des unsicheren Austauschs von Cookies in den Vordergrund gerückt.

Wie können Sie sicherstellen, dass alle Cookie-Austausche nur über eine SSL-gesicherte Verbindung zum Server stattfinden, wenn Sie mit einem Webbenutzer kommunizieren?

Unser Szenario ist, dass die Webanwendung in ASP.NET 4.0 geschrieben und auf Windows Server 2008 R2 gehostet wird, auf dem IIS 7.5) ausgeführt wird, wenn dies den Umfang etwas einschränkt.

23
cpuguru

Sie können app.config verwenden, um es zu erzwingen; das Format ist (im <system.web> Sektion)

<httpCookies domain="String"
             httpOnlyCookies="true|false" 
             requireSSL="true|false" />

sie wollen also zumindest wirklich

<httpCookies requireSSL='true'/>

Am besten schalten Sie aber auch httpOnlyCookies ein, es sei denn, Sie machen wirklich hektisches Javascript.

21
blowdart

Der sicherste Weg, Ihre Website vor Firesheep (und damit verbundenen Angriffen) zu schützen:

  • Zum standortweiten SSL-Schutz wechseln : Verschieben Sie Ihre gesamte Site zu HTTPS und deaktivieren Sie den gesamten HTTP-Zugriff. Mit anderen Worten, schützen Sie Ihre gesamte Site mit SSL. Hier einige weitere Ressourcen dazu: Schutz vor Firesheep , Vor- und Nachteile von Site-Wide-SSL , Warum SSL vor Firesheep schützt .

  • Setzen Sie das SECURE-Flag für alle Cookies : Wenn der Server ein Cookie setzt, lassen Sie das SECURE-Flag für das Cookie setzen. Das SECURE-Flag weist den Browser des Benutzers an, dieses Cookie nur über HTTPS-Verbindungen (SSL-Secure) zurückzusenden. Der Browser sendet niemals ein SICHERES Cookie über eine unverschlüsselte (HTTP) Verbindung. Der einfachste Schritt besteht darin, dieses Flag für jedes Cookie zu setzen, das Ihre Site verwendet.

Außerdem empfehle ich einige zusätzliche Schritte:

  • Seien Sie vorsichtig mit Inhalten von Drittanbietern : Widgets, Bibliotheken und Inhalte von Drittanbietern können ein Sicherheitsrisiko darstellen. Wenn Sie Javascript von Drittanbietern einschließen (z. B. über <SCRIPT SRC=...>), Empfehlen Sie, dass Sie sicherstellen, dass diese auf HTTPS-URLs verweisen. Andernfalls setzen Sie die Sicherheit Ihrer Website aktiven Angriffen aus. (Siehe auch Jeremiah Grossmans FAQ zu Widgets von Drittanbietern .) Um zu vermeiden, dass Ihre Benutzer mit Warnungen mit gemischten Inhalten überschwemmt werden, werden Sie möchten sicherstellen, dass alle Inhalte, einschließlich Bilder und Bibliotheken von Drittanbietern, auch über HTTPS bereitgestellt werden.

Einige könnten argumentieren, dass das oben Genannte übertrieben ist. In einigen Fällen kann es möglich sein, sich vor Firesheep zu schützen, indem nur auf einem Teil der Site SSL verwendet wird. Dies erfordert jedoch Sorgfalt und detailliertes Wissen und ist schwieriger zu erreichen. Da Sie die Frage hier stellen müssen, empfehle ich Ihnen persönlich, mit Site-weitem SSL zu beginnen. Sie haben eine bessere Chance, es richtig zu machen.

So implementieren Sie dies in IIS : Ich bin kein IIS Experte, daher kann ich Ihnen kein endgültiges Rezept geben So implementieren Sie diese Schritte in IIS. Diese Referenz zu Aktivieren von SSL unter IIS kann für Sie jedoch hilfreich sein. Sie können mit der rechten Maustaste auf das Site-Stammverzeichnis klicken und Properties auswählen. Klicken Sie auf die Registerkarte Directory Security, dann auf Secure Communications, klicken Sie auf Edit und aktivieren Sie Require Secure Channel (SSL). Ich weiß nicht, wie ich IIS, um das SECURE-Flag automatisch für alle Cookies zu setzen. Für die Migration einer vorhandenen Site empfehle ich, dass Sie eine Umleitung einrichten, damit jeder, der eine HTTP-Seite besucht, zu HTTPS umgeleitet wird. Die folgenden Verweise können dabei helfen ( ungetestet): mleitung zu HTTPS , drei Methoden zur Umleitung zu HTTPS . Wenn Sie eine vorhandene Site migrieren, müssen Sie auch alle Links und Verweise auf Ihre Site von http: URLs zu https: URLs. Ich bin nicht sicher, wie ich ASP.NET so konfigurieren soll, dass das SECURE-Flag für alle Cookies gesetzt wird, aber ich denke, Sie können hinzufügen cookieRequireSSL="true" Oder <httpCookies requireSSL="true"> Zu Ihrem Web.config; Dies ist wichtig und besonders wichtig, wenn Sie HTTP aktiviert haben oder wenn Sie eine Art Umleitung von HTTP-Seiten zu HTTPS-Seiten haben. Schließlich gibt es eine Menge Material, das auf Performance-Tuning für HTTPS veröffentlicht wurde.

18
D.W.

Ich bin auf diesen Thread gestoßen, als ich mich entschlossen habe, mich selbst auszusprechen. Die Lösung, die ich hatte, ist, dass Cookie-Pfade zwischen Groß- und Kleinschreibung unterscheiden. Hier ist die verwandte Frage.

https://stackoverflow.com/questions/399982/why-are-cookie-paths-case-sensitive

Mein Vorsatz war, von der Zielseite zum richtigen Pfad umzuleiten. Achten Sie auf mögliche Umleitungsschleifen.

url.com/VirtualDirectory/default.aspx ->

// die jetzt den richtigen Pfad angibt url.com/virtualdirectory/default.aspx response.redirect ("~/default.aspx");

1
MichaelChan