У меня есть следующий фрагмент кода для 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>
Найдено здесь:
https://www.owasp.org/index.php/HTTP_Strict_Transport_Security
Q1: Как узнать, что это правильный синтаксис? RESPONSE подчеркивание переменной сервера (из фрагмента кода выше)?
serverVariable="RESPONSE_Strict-Transport-Security"
Q2: Где я могу найти дополнительную информацию об этом?
serverVariable="RESPONSE_Strict-Transport-Security"
- это просто синтаксис перезаписи URL-адреса IIS, что означает, что это правило применяется к HTTP-заголовку ответа с именем Strict-Transport-Security
В документация модуля это немного объясняет.
Строгая безопасность транспорта HTTP (HSTS) - это флаг, который веб-сайт может установить, чтобы все дальнейшие коммуникации из поддерживаемых браузеров были принудительно переведены на HTTPS.
В вашей конфигурации флаг указывает браузерам использовать только HTTPS для вашего сайта как минимум в течение следующего года. Это делается с помощью правила перезаписи исходящего трафика, которое добавляет заголовок HSTS ко всем исходящим ответам.
Поскольку большинство пользователей вводят веб-сайты как www.example.com
или example.com
и нет https://www.example.com
, это помогает пользователям избегать использования незашифрованного протокола HTTP для связи.