gpt4 book ai didi

asp.net-mvc - AWS ASP.NET MVC 网站上未设置安全 cookie

转载 作者:行者123 更新时间:2023-12-05 06:41:16 24 4
gpt4 key购买 nike

我们的安全审查表明,尽管在 web.config 中进行了以下设置,但我们的 ASP.NET MVC 应用程序中的 cookie 并未设置为安全:

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

该网站未使用表单例份验证,因此不需要 <forms requireSSL="true">设置。

该网站托管在 AWS 应用程序服务器上,并通过 ELB 访问。在应用程序服务器上,网站内部是 HTTP,但外部是 HTTPS。

我已尝试实现此处找到的解决方案:

http://www.jamescrowley.co.uk/2014/03/07/ssl-termination-and-secure-cookiesrequiressl-with-asp-net-forms-authentication/

将以下重写规则添加到 web.config 中:

<rewrite>
<rules>
<rule name="HTTPS_AlwaysOn" patternSyntax="Wildcard">
<match url="*" />
<serverVariables>
<set name="HTTPS" value="on" />
</serverVariables>
<action type="None" />
<conditions>
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" />
</conditions>
</rule>
</rules>
</rewrite>

并将 HTTPS 变量添加到 applicationHost.config 以包含:

<rewrite>
<allowedServerVariables>
<add name="HTTPS" />
</allowedServerVariables>
</rewrite>

不幸的是,这会导致 ELB 失败。在与我们的内部 AWS 支持团队交谈时,他们说这是因为 ELB 健康检查失败。在网站的根目录下有一个 health.html 页面。有没有办法对上面的内容应用条件,以便它忽略 ELB 使用的 health.html 页面的这个?我是重写规则的新手,因此不完全精通语法及其工作方式。

最佳答案

我还不能测试这个,但理论上我认为你只需要改变你的条件:

        <conditions logicalGrouping="MatchAll" >
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" />
<add input="{REQUEST_URI}" negate="true" pattern="^/health.html$" ignoreCase="true" />
</conditions>

关于asp.net-mvc - AWS ASP.NET MVC 网站上未设置安全 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com