【问题标题】:Securing Cookies on ASP.Net保护 ASP.Net 上的 Cookie
【发布时间】:2021-09-19 23:15:38
【问题描述】:

我正在尝试将 cookie “ASP.NET_SessionId”设置为使用 https 以确保其安全。这是安全扫描所必需的,即使 cookie 本身似乎没有携带大量数据。我将此添加到我的 web.config(在 system.web 下):

<httpCookies httpOnlyCookies="true" requireSSL="true" />

当我在本地运行它时,我可以看到 cookie 被设置为安全(在浏览器开发人员工具中,在 Cookies 下,“安全”列被选中)。但是,当我发布到 Azure 并检查相同的 cookie 时,我可以看到未选中“安全”。这是否需要在 Azure 主机或我的应用程序中进行配置?

谢谢

【问题讨论】:

  • “即使 cookie 本身似乎没有携带大量数据” - 当然,它只携带会话 ID。如果有人因为该会话 ID 是通过 HTTP 传递而截获该会话 ID,那么他们可能会窃取该会话,从而获得对他们不应被允许拥有的数据的访问权限。了解您要解决的安全问题很重要。
  • 谢谢。是的,这就是我试图修复它的原因。有什么想法吗?
  • 您是否尝试过清除 cookie,然后查看服务器是否向您发出了正确设置安全设置的新 cookie?
  • 我发现了一些我可以设置的其他配置文件设置来解决问题。我将它们添加到下面的答案中。

标签: asp.net azure cookies azure-web-app-service


【解决方案1】:

我最终将此添加到 web.config 文件中,位于 &lt;system.webServer&gt;&lt;outboundRules&gt;&lt;rewrite&gt; 节点下:

        <clear />
        <rule name="Add SameSite" preCondition="No SameSite">
          <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
          <action type="Rewrite" value="{R:0}; SameSite=lax" />
        </rule>
        <preConditions>
          <preCondition name="No SameSite">
            <add input="{RESPONSE_Set_Cookie}" pattern="." />
            <add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=lax" negate="true" />
          </preCondition>
        </preConditions>

除了我已经拥有的而且似乎已经奏效的东西

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-01
    • 2013-07-04
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 2011-08-24
    相关资源
    最近更新 更多