0
儘管在web.config中有以下設置,但我們進行了安全審查,發現我們的ASP.NET MVC應用程序中的Cookie未設置爲安全:未在AWS ASP.NET MVC網站上設置安全cookie
<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頁面。有沒有一種方法可以將上述條件應用於ELB使用的health.html頁面,從而忽略此條件?我不熟悉重寫規則,因此不完全熟悉語法和工作方式。