2010-02-11 10 views

risposta

14

I cookie di sessione ASP.NET sono solo HTTP, indipendentemente dall'impostazione httpOnlyCookies collegata alla domanda, poiché questa viene masterizzata in ASP.NET. Non puoi ignorare questo.

Se si scava nella classe System.Web.SessionState.SessionIDManager nell'assemblea System.Web il codice per creare il cookie di sessione ASP.NET assomiglia:

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

ha trovato la documentazione qui: http://msdn.microsoft.com/en-us/library/aa480476.aspx "HttpOnly. Questa proprietà specifica se è possibile accedere al cookie tramite script client. In ASP.NET 2.0, questo valore è sempre impostato su true. " –

+1

@dev - Ho appena scavato nell'assembly System.Web.dll per dare un'occhiata :) – Kev

+0

Anche la parte sottostante è importante. I browser meno recenti non supportano HttpOnly e possono ignorare il cookie o ignorare l'attributo, quest'ultimo lascia comunque il tuo sito aperto agli attacchi XSS. –

1

È HttpOnly così il cookie di sessione non può essere modificato dal cliente con JavaScript.

+0

corretto. Conoscevo quella parte. Ho riformulato la mia domanda da "perché" a "come è impostata?" –

Problemi correlati