c# – 将会话cookie设置为HttpOnly
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 将会话cookie设置为HttpOnly,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1582字,纯文字阅读大概需要3分钟。
内容图文
我正在使用Entity Framework 6.0开发ASP.NET MVC服务器.据我所知,它设置为与EF 4.5兼容(< httpRuntime targetFramework =“4.5”/>).
我想确保会话cookie(即存储会话标识符的cookie)是HttpOnly,因为这是一个行业范围的最佳实践,它有助于防止跨站点请求伪造攻击.
问题是,它是由框架自动创建的,所以我不能简单地在调用构造函数后立即更改对象的属性,就像所有其他cookie一样.
在Web.config中,我设置了< httpCookies httpOnlyCookies =“true”/>,然而 – 当我检索会话cookie时 – 它不是HttpOnly(它的HttpCookie.HttpOnly属性设置为false).我不太清楚如何改变它.
我在Microsoft的文档中找不到任何关于Web.config的< sessionState>的内容.这会改变这一点.在Stack Overflow上我只发现了a four year old question talking about how session cookie is HttpOnly by default,这与我完全相反,而a five days old question asking why session cookie is not HttpOnly by default – 由于一些莫名其妙的原因被关闭 – 没有评论 – 作为前者的副本.
我知道I can retrieve the session cookie, check it and set HttpOnly=true on every request(或者用较少的精炼/ hackish过滤器来做这件事,或者在登录时手动设置,或者……),但我不是一个血腥的野蛮人,必须有一个正确的方法去做这个.
那么,如何将会话cookie设置为HttpOnly?
解决方法:
会话Cookie将始终为httponly.您无法修改或覆盖它.
when I retrieve the session cookie – it is not HttpOnly (its
HttpCookie.HttpOnly property is set false).
var cookie = Request.Cookies["ASP.Net_SessionId"];
if (cookie != null)
{
var httpOnly = cookie.HttpOnly; // <-- This is always false
}
HttpOnly值在服务器端始终为false,因为客户端浏览器不会将cookie发送回服务器,无论cookie是否为httponly.
我该如何验证?
您可以使用Cookie插件EditThisCookie等Cookie编辑器.
内容总结
以上是互联网集市为您收集整理的c# – 将会话cookie设置为HttpOnly全部内容,希望文章能够帮你解决c# – 将会话cookie设置为HttpOnly所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。