2010-02-11 10 views

Odpowiedz

14

Pliki cookie sesji ASP.NET są tylko HTTP, niezależnie od ustawienia httpOnlyCookies powiązanego z Twoim pytaniem, ponieważ jest ono wypalane w ASP.NET. Nie możesz tego zmienić.

Jeśli kopać w klasie System.Web.SessionState.SessionIDManager w zespole system.Web kod do tworzenia pliku cookie sesji ASP.NET wygląda następująco:

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

znaleziona dokumentacja tutaj: http://msdn.microsoft.com/en-us/library/aa480476.aspx "HttpOnly Ta właściwość określa, czy plik cookie może być dostępny przez skrypt klienta. W ASP.NET 2.0 ta wartość jest zawsze ustawione na true. " –

+1

@dev - Właśnie zagłębiłem się w zestawie System.Web.dll, aby rzucić okiem :) – Kev

+0

Ważna jest również część pod nim. Starsze przeglądarki nie obsługują HttpOnly i mogą albo zignorować plik cookie, albo zignorować atrybut, ten drugi pozostawia otwartą witrynę na ataki XSS. –

1

Jest HttpOnly więc sesja cookies nie mogą być modyfikowane przez klienta z JavaScript.

+0

Prawidłowo. Znałem tę część. Przeformułowałem moje pytanie z "dlaczego" na "jak to jest ustawione?" –

Powiązane problemy