我有以下代码段的IIS。
<configuration> <system.webServer> <rewrite> <rules> <rule name="HTTPS_301_Redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" /> </rule> </rules> <outboundRules> <rule name="Add_HSTS_Header" preCondition="USING_HTTPS" patternSyntax="Wildcard"> <match serverVariable="RESPONSE_Strict-Transport-Security" pattern="*" /> <action type="Rewrite" value="max-age=31536000" /> </rule> <preConditions> <preCondition name="USING_HTTPS"> <add input="{HTTPS}" pattern="^ON$" /> </preCondition> </preConditions> </outboundRules> </rewrite> </system.webServer> </configuration>
在这里find:
https://www.owasp.org/index.php/HTTP_Strict_Transport_Security
Q1:你怎么知道这是正确的语法? RESPONSE下划线服务器variables(从上面的代码片段)?
serverVariable="RESPONSE_Strict-Transport-Security"
Q2:我在哪里可以find更多关于它的信息?
HTTP严格传输安全 (HSTS)是一个网站可以设置的标志,以便所有来自支持的浏览器的进一步通信将被强制为HTTPS。
在您的configuration中,该标志会告诉浏览器至less在下一年仅为您的站点使用HTTPS。 这是通过将HSTS报头添加到所有出站响应的出站重写规则完成的。
由于大多数用户在www.example.com或example.com而不是https://www.example.cominput网站,这有助于用户避免使用未encryption的HTTP进行通信。
serverVariable="RESPONSE_Strict-Transport-Security"
只是IIS URL重写语法,意思是将此规则应用于名称为Strict-Transport-Security的响应http头
模块文档解释了这一点。