2016-12-02 13 views
0

У нас был обзор безопасности, который показал, что файлы cookie в нашем приложении ASP.NET MVC не были установлены как безопасные, несмотря на то, что в web.config есть следующая настройка:Безопасный файл cookie не установлен на веб-сайте AWS ASP.NET MVC

<httpCookies requireSSL="true" httpOnlyCookies="true" /> 

Веб-сайт не использует проверку подлинности форм, поэтому нет необходимости в настройке <forms requireSSL="true">.

Веб-сайт размещен на сервере приложений AWS и доступен через ELB. Внутри сервера приложений веб-сайт является HTTP, но внешне это HTTPS.

Я попытался реализовать решение здесь:

http://www.jamescrowley.co.uk/2014/03/07/ssl-termination-and-secure-cookiesrequiressl-with-asp-net-forms-authentication/

Добавлены следующие правила перезаписи на это 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? Я новичок в переписывании правил, которые не полностью разбираются в синтаксисе и способе их работы.

ответ

1

Я не могу проверить это еще, но в теории я думаю, вам просто нужно будет изменить свои условия:

 <conditions logicalGrouping="MatchAll" > 
      <add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" /> 
      <add input="{REQUEST_URI}" negate="true" pattern="^/health.html$" ignoreCase="true" /> 
     </conditions>