2010-02-11 43 views

Respuesta

14

cookies de sesión ASP.NET son sólo HTTP, independientemente del ajuste httpOnlyCookies vinculados en su pregunta, ya que este se quema en ASP.NET. No puedes anular esto.

Si se mira a la clase System.Web.SessionState.SessionIDManager en la asamblea System.Web el código para crear la cookie de sesión ASP.NET se parece a:

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

encontró documentación aquí: http://msdn.microsoft.com/en-us/library/aa480476.aspx "HttpOnly. Esta propiedad especifica si la secuencia de comandos del cliente puede acceder a la cookie. En ASP.NET 2.0, este valor siempre está establecido en true " –

+1

@dev -. yo sólo se clavaron en el ensamblado System.Web.dll para echar un vistazo :) – Kev

+0

la parte derecha de abajo es importante también. Los navegadores antiguos no son compatibles con HttpOnly, y pueden ignorar la cookie o ignorar el atributo, este último aún deja su sitio abierto a los ataques XSS. –

1

Es HttpOnly por lo que su cookie de sesión no puede ser modificado por el cliente con JavaScript

+0

Correcto. Yo sabía esa parte. Reformé mi pregunta de "por qué" a "¿cómo se establece?" –

Cuestiones relacionadas