HTTP 严格传输安全 (HSTS)、Azure 和 HTTP 严格传输安全 IIS 模块

HTTP 严格传输安全 (HSTS)、Azure 和 HTTP 严格传输安全 IIS 模块

问题:如何在 Azure 网站中正确安装和配置 HTTP 严格传输安全 (HSTS)?

显然,对于 IIS,使用的方法是安装此模块:http://hstsiis.codeplex.com/

问题是,根据文档,您需要在不同位置安装多个 .dll(HSTS-IIS-Module-2.0.0.msi)。不幸的是,这在 Azure 网站环境中似乎不可能实现(如何在 Azure 网站中安装 IIS 模块?)?使用虚拟机可能会有效,但我的问题针对的是常规 Azure 网站/Web 应用程序(ASP.NET MVC 5 应用程序)。

答案1

更新:

如果你正在运行 ASP.NET,你需要安装安全网。它将允许您配置 HSTS,以及 Content-Security-Policy 和其他与OWASP 安全标头项目


Scott Hanselman 在他的博客中介绍了这个解决方案(来源在答案的底部)。

基本上,HSTS 只是一个 HTTP 标头。但您只想在使用 HTTPS 时发送它。这样,您的网站将在max-age指定的时间内锁定在 HTTPS 中。

您的申请中应该包含以下内容web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="HTTP to HTTPS redirect" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
                        redirectType="Permanent" />
                </rule>
            </rules>
            <outboundRules>
                <rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
                    <match serverVariable="RESPONSE_Strict_Transport_Security"
                        pattern=".*" />
                    <conditions>
                        <add input="{HTTPS}" pattern="on" ignoreCase="true" />
                    </conditions>
                    <action type="Rewrite" value="max-age=31536000" />
                </rule>
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>

来源

相关内容