首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将HttpCookie设置为HttpOnly

将HttpCookie设置为HttpOnly
EN

Stack Overflow用户
提问于 2017-12-12 16:56:48
回答 1查看 5.6K关注 0票数 1

我特别使用以下代码设置cookie:

代码语言:javascript
复制
System.Web.HttpCookie cookie = new System.Web.HttpCookie("MyCookie", accessToken)
{
    Expires = DateTime.UtcNow.AddDays(30),
    HttpOnly = false,
    Domain = ".mywebsite.com",
    Path = "/"
};

我的web.config上也有以下条目:

代码语言:javascript
复制
<httpCookies httpOnlyCookies="true" requireSSL="true" lockItem="true"/>

直到今天,所有的cookie都被设置为HttpOnly,除了MyCookie,这正是我想要的。

但今天发生了一些奇怪的事情。我用相同的代码部署了我的web应用程序,MyCookie被设置为HttpOnly

所以我现在有两种不同的装置,有不同的行为。

因此,我的问题是:是否有任何其他配置或OS / IIS版本可以覆盖cookie创建方法设置?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-12-12 17:47:42

HttpOnly依赖于浏览器,但对于大多数常见的浏览器来说是可用的.对于.NET世界,可以像上面针对cookie那样设置它。但是,如果您使用的是.NET芯,则除非您正在使用IIS,否则web.config中不再存在下面提到的默认设置,因此必须在每个cookie上设置它。

考虑到下面的内容与代码中的内容一致,我会再次检查在设置cookie之后,没有任何其他东西正在修改您的cookie。您是否通过在上面的cookie定义之后添加调试代码来检查HttpOnly的值是否为真?我还会尝试在一个新变量中检索cookie,以确保它也是相同的。

摘自OWASP网站:

默认情况下,.NET 2.0为-会话ID -窗体身份验证cookie设置HttpOnly属性

在.NET 2.0中,也可以通过HttpCookie对象为所有自定义应用程序cookies设置HttpOnly

在system.web/httpCookies元素中通过web.config

代码语言:javascript
复制
<httpCookies httpOnlyCookies="true" …> 

或以编程方式

C#代码:

代码语言:javascript
复制
HttpCookie myCookie = new HttpCookie("myCookie");
myCookie.HttpOnly = true;
Response.AppendCookie(myCookie);

VB.NET代码:

代码语言:javascript
复制
Dim myCookie As HttpCookie = new HttpCookie("myCookie")
myCookie.HttpOnly = True
Response.AppendCookie(myCookie)

但是,在.NET 1.1中,您必须手动执行此操作,例如,

代码语言:javascript
复制
Response.Cookies[cookie].Path += ";HttpOnly";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47777816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档