启用严格的传输安全性mvc

时间:2017-12-08 07:18:45

标签: asp.net-mvc security iis-7

我想启用严格的传输安全性。 我的网站是https启用。 下面是我启用hsts的代码。

<system.webServer>
    <httpProtocol>
      <customHeaders>

          <add name="X-Frame-Options" value="SAMEORIGIN" />
          **<add name="Strict-Transport-Security" value="max-age=31536000"/>**
         .....
        </customHeaders>
    </httpProtocol>

以上设置是否足以使严格的传输安全性启用,或者我还需要添加以下设置,即。

<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> 

如果两种设置都是强制性的,那么重写的需要是什么 我们可以只启用hsts 或仅限于 重写。

为什么需要重写。 https://www.hanselman.com/blog/HowToEnableHTTPStrictTransportSecurityHSTSInIIS7.aspx

1 个答案:

答案 0 :(得分:1)

此标头强制浏览器使用HTTPS。如果应用程序在某处提供了HTTP链接,或者用户尝试使用HTTP输入URL,则浏览器会将其重定向到https。要使用HSTS,该站点需要有效的SSL证书。重写不是强制性的,但它有好处。因为,如果用户首先使用https进入网站,那么无论何时他来到网站,用户都将自动重定向到有效期,每次访问时最大年龄也会更新。但是如果用户在http模式下输入一次,则STS可能无法工作,直到他在https中使用该网站一次。最好使用重写。

<system.webServer>
<httpProtocol>
<customHeaders>
<add name=”Strict-Transport-Security” value=”max-age=xxxxxx”/>
</customHeaders>
</httpProtocol>
</system.webServer>

https://www.owasp.org/index.php/HTTP_Strict_Transport_Security_Cheat_Sheet

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security