受到这篇 CodingHorror 文章的启发,“保护您的 Cookie:仅HTTP"

这个属性怎么设置呢?在网络配置的某个地方?

有帮助吗?

解决方案

如果您使用的是 ASP.NET 2.0 或更高版本,则可以在 Web.config 文件中将其打开。在 <system.web> 部分中,添加以下行:

<httpCookies httpOnlyCookies="true"/>

其他提示

向 Rick 表示支持(提到的博客文章中的第二条评论),这是 MSDN 文章 在 httpOnlyCookies 上。

最重要的是,您只需在 web.config 的 system.web 部分中添加以下部分:

<httpCookies domain="" httpOnlyCookies="true|false" requireSSL="true|false" />

如果您想在代码中执行此操作,请使用 System.Web.HttpCookie.HttpOnly 财产。

这直接来自 MSDN 文档:

// Create a new HttpCookie.
HttpCookie myHttpCookie = new HttpCookie("LastVisit", DateTime.Now.ToString());
// By default, the HttpOnly property is set to false 
// unless specified otherwise in configuration.
myHttpCookie.Name = "MyHttpCookie";
Response.AppendCookie(myHttpCookie);
// Show the name of the cookie.
Response.Write(myHttpCookie.Name);
// Create an HttpOnly cookie.
HttpCookie myHttpOnlyCookie = new HttpCookie("LastVisit", DateTime.Now.ToString());
// Setting the HttpOnly value to true, makes
// this cookie accessible only to ASP.NET.
myHttpOnlyCookie.HttpOnly = true;
myHttpOnlyCookie.Name = "MyHttpOnlyCookie";
Response.AppendCookie(myHttpOnlyCookie);
// Show the name of the HttpOnly cookie.
Response.Write(myHttpOnlyCookie.Name);

通过代码执行此操作,您可以有选择地选择哪些 cookie 是 HttpOnly,哪些不是。

有趣的是,把 <httpCookies httpOnlyCookies="false"/> 似乎没有禁用 httpOnlyCookies 在 ASP.NET 2.0 中。检查这篇文章关于 ASP .NET 2.0 的 SessionID 和登录问题.

看起来 Microsoft 决定不允许您从 web.config 禁用它。检查这个 在forum.asp.net 上发帖

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top