代码之家  ›  专栏  ›  技术社区  ›  dev.e.loper

如何为ASP.NET的sessionid cookie设置httponly?

  •  7
  • dev.e.loper  · 技术社区  · 15 年前

    在我的Web项目中 setting to turn on httpOnlyCookies 不在那里。默认情况下为假。同样,代码中也没有将cookie设置为httponly的位置。但是,当我浏览到该站点时,我可以看到ASP.NET_会话cookie正在作为httponly传递。如何设置为httponly?

    2 回复  |  直到 15 年前
        1
  •  14
  •   erlando    15 年前

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

    如果你深入研究 System.Web.SessionState.SessionIDManager 在System.Web程序集中,用于创建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;
    }
    
        2
  •  1
  •   Shawn Steward    15 年前

    它是httponly,因此客户端不能用javascript修改会话cookie。