如何为ASP.NET_SessionId cookie设置HttpOnly get?

如何为ASP.NET_SessionId cookie设置HttpOnly get?,asp.net,session,cookies,Asp.net,Session,Cookies,在我的web项目中没有。默认情况下为false。代码中也没有cookie被设置为HttpOnly的地方。但是,当我浏览到该站点时,我可以看到ASP.NET_会话cookie正在作为HttpOnly传递。如何将其设置为HttpOnly?ASP.NET会话cookie仅为HTTP,而与您问题中链接的httpOnlyCookies设置无关,因为这会被烧录到ASP.NET中。你不能覆盖这个 如果深入研究System.Web程序集中的System.Web.SessionState.SessiondMana

在我的web项目中没有。默认情况下为false。代码中也没有cookie被设置为HttpOnly的地方。但是,当我浏览到该站点时,我可以看到ASP.NET_会话cookie正在作为HttpOnly传递。如何将其设置为HttpOnly?

ASP.NET会话cookie仅为HTTP,而与您问题中链接的
httpOnlyCookies
设置无关,因为这会被烧录到ASP.NET中。你不能覆盖这个

如果深入研究System.Web程序集中的
System.Web.SessionState.SessiondManager
类,则创建ASP.NET会话cookie的代码如下所示:

private static HttpCookie CreateSessionCookie(string id)
{
    HttpCookie cookie = new HttpCookie(Config.CookieName, id);
    cookie.Path = "/";
    cookie.HttpOnly = true;   // <-- burned in
    return cookie;
}
私有静态HttpCookie CreateSessionCookie(字符串id)
{
HttpCookie cookie=新的HttpCookie(Config.CookieName,id);
cookie.Path=“/”;

cookie.HttpOnly=true;//它是HttpOnly,因此客户端无法使用JavaScript修改会话cookie。

正确。我知道这一部分。我将问题从“为什么”改为“如何设置?”在此处找到文档:HttpOnly。此属性指定客户端脚本是否可以访问cookie。在ASP.NET 2.0中,此值始终设置为true。"@dev-我刚刚深入System.Web.dll程序集查看了一眼:)它下面的部分也很重要。较旧的浏览器不支持HttpOnly,可能会忽略cookie或忽略属性,后者仍然会使您的站点受到XSS攻击。@Stack0verflow-这个问题和答案是关于会话cookie的,而不是常规cookies、 会话cookie始终是仅HTTP的,这会烧录到框架代码中。@Stack0verflow-请参阅(54次投票的答案)。就我所知,cookie不会有任何特殊情况发生,只是cookie将仅通过SSL传输。