セキュリティレビューでは、ASP.NET MVCアプリケーションのCookieがweb.configに次のような設定をしていても安全ではないことが判明しました:AWSに安全なクッキーが設定されていないASP.NET MVC Webサイト
<httpCookies requireSSL="true" httpOnlyCookies="true" />
ウェブサイトはフォーム認証を使用していないため、<forms requireSSL="true">
の設定は必要ありません。
ウェブサイトはAWSアプリケーションサーバー上でホストされ、ELBを介してアクセスされます。内部的にはアプリケーションサーバー上のWebサイトはHTTPですが、外部的にはHTTPSです。
私はここで見つけるソリューションを実装しようとしました:
<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>
をそしてapplicationHostにHTTPS変数を追加しました:
は、web.configファイルにこれに以下の書き換えルールを追加しました.configには以下を含む:
<rewrite>
<allowedServerVariables>
<add name="HTTPS" />
</allowedServerVariables>
</rewrite>
U残念ながら、これはELBを失敗させます。内部のAWSサポートチームと話すとき、ELBの健康診断が失敗しているためです。ウェブサイトのルートにはhealth.htmlページがあります。 ELBが使用するhealth.htmlページでこれを無視するように、上記に条件を適用する方法はありますか?私はルールを書き直すのが新しいので、シンタックスとその仕組みに完全に精通していません。