У нас был обзор безопасности, который показал, что файлы cookie в нашем приложении ASP.NET MVC не были установлены как безопасные, несмотря на то, что в web.config есть следующая настройка:Безопасный файл cookie не установлен на веб-сайте AWS ASP.NET MVC
<httpCookies requireSSL="true" httpOnlyCookies="true" />
Веб-сайт не использует проверку подлинности форм, поэтому нет необходимости в настройке <forms requireSSL="true">
.
Веб-сайт размещен на сервере приложений AWS и доступен через ELB. Внутри сервера приложений веб-сайт является HTTP, но внешне это HTTPS.
Я попытался реализовать решение здесь:
Добавлены следующие правила перезаписи на это 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>
U К сожалению, это приводит к сбою ELB. Когда мы говорим с нашей внутренней службой поддержки AWS, это говорит о том, что проверка работоспособности ELB не выполняется. В корне сайта есть страница health.html. Есть ли способ применить условие к вышесказанному, чтобы он игнорировал это для страницы health.html, которую использует ELB? Я новичок в переписывании правил, которые не полностью разбираются в синтаксисе и способе их работы.