【问题标题】:Securing cookies in ASP.NET在 ASP.NET 中保护 cookie
【发布时间】:2017-02-23 06:35:34
【问题描述】:

我知道这个问题已经被问过很多次了,但我不知道为什么我无法解决这个问题

<system.web>
 <httpCookies httpOnlyCookies="true" requireSSL="false" domain=""/>
 <sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="20" cookieName="id">
</system.web>

但它没有按要求工作

有人可以帮助我如何修复它或我做错了什么。

我已尝试在 App 上 Global.asax 的代码中修复它

protected void Application_EndRequest()
        {
           foreach (string s in Response.Cookies.AllKeys)
            {
                if (s.ToLower() == "id")
                {
                    Response.Cookies[s].HttpOnly = true;                      
                }
            }
        }

环境:ASP.NET MVC

问候

【问题讨论】:

  • 没有足够的信息,而且被问了很多次。您应该与您的代表一起了解您尝试过的内容以及究竟是什么不起作用
  • 这看起来很简单,我已经尝试并阅读了许多文章,并且大多建议按照我的做法去做,但它没有用。它没有让 httpcookie 成为真正的数据,我发布了这个问题
  • “它没有按要求工作” - 需要什么?它是如何“不工作”的?请详细说明您的问题。
  • 当我一直在使用 chrome 从服务器(在 cookie 中)返回响应时,我看不到 HTTPONly true

标签: c# asp.net asp.net-mvc cookies


【解决方案1】:

这会对你有所帮助。

有两种方法,一种是 web.config 中的 httpCookies 元素,可以让你开启 ReqiresSSL。安全属性指示浏览器仅在通过 SSL/TLS 连接发送的请求中包含 cookie。

httpOnlyCookies 属性礼貌地要求网络浏览器不要与脚本或小程序共享 cookie。对于会话 cookie,此属性应始终为真。与安全属性一样,只有在响应中设置了 cookie 时才能看到 httpOnly。

https://stackoverflow.com/a/6190050/1891919

https://www.jardinesoftware.net/2015/10/13/securing-the-net-cookies/

【讨论】:

  • 你将如何处理这个问题,这样它就不会在本地开发时设置标志,而只是在实时环境中?
  • @RobertBenedetto web.config 针对每个环境进行转换。
猜你喜欢
  • 2013-07-04
  • 2021-09-19
  • 2017-12-01
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多