2010-02-11 11 views

Antwort

14

ASP.NET-Sitzungscookies sind nur HTTP, unabhängig von der in Ihrer Frage verknüpften Einstellung httpOnlyCookies, da diese in ASP.NET gebrannt wird. Sie können dies nicht überschreiben.

Wenn Sie in die System.Web.SessionState.SessionIDManager Klasse in der der Code System.Web Baugruppe graben, um den ASP.NET Session-Cookie sieht für das Erstellen wie:

private static HttpCookie CreateSessionCookie(string id) 
{ 
    HttpCookie cookie = new HttpCookie(Config.CookieName, id); 
    cookie.Path = "/"; 
    cookie.HttpOnly = true; // <-- burned in 
    return cookie; 
} 
+2

gefunden Dokumentation hier: http://msdn.microsoft.com/en-us/library/aa480476.aspx "HttpOnly. Diese Eigenschaft gibt an, ob auf das Cookie von Clientskript zugegriffen werden kann. In ASP.NET 2.0, dieser Wert wird immer auf "True" gesetzt. " –

+1

@dev - Ich habe gerade in die System.Web.dll-Baugruppe gegraben, um einen Blick darauf zu werfen :) – Kev

+0

Der Teil direkt darunter ist ebenfalls wichtig. Ältere Browser unterstützen HttpOnly nicht und können entweder das Cookie ignorieren oder das Attribut ignorieren. Letzteres lässt Ihre Website dennoch für XSS-Angriffe offen. –

1

Es ist Httponly so Ihre Session-Cookie vom Client nicht geändert werden kann mit JavaScript.

+0

Korrigieren. Ich kannte diesen Teil. Ich formulierte meine Frage von "Warum" zu "Wie ist es eingestellt?" –

Verwandte Themen