2017-06-20 15 views
0

AzureでホストされているASP.NETサイトがあります。ASP.NET HTTPSリダイレクトおよびHSTSヘッダー

は、以前我々はHTTPSを強制するには、次の書き換えルールを実装:

<rules> 
    <rule name="Redirect to https"> 
     <match url="(.*)"/> 
     <conditions> 
     <add input="{HTTPS}" pattern="Off"/> 
     <add input="{REQUEST_METHOD}" pattern="^get$|^head$|^post$" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/> 
    </rule> 
    </rules> 

現在(this guideから)次のルールを経由してHSTSを導入されています

<outboundRules> 
    <rule name="Add Strict-Transport-Security only when using HTTPS" enabled="true"> 
     <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="on" ignoreCase="true" /> 
     </conditions> 
     <action type="Rewrite" value="max-age=31536000; includeSubdomains; preload" /> 
    </rule> 
    </outboundRules> 

は、我々はルールや缶の両方が必要です私たちはHTTPSルールを削除し、HSTSを1つだけ持っていますか?

答えて

3

いいえ、両方必要です。

HSTSは、仕様に従ってセキュリティで保護された要求にのみ適用する必要があります。中間者がヘッダーを取り除くだけなので、安全でない要求にも適用するのは理にかなっていません。

リクエストがHTTPで受信された場合、最初にリクエストをHTTPSにリダイレクトする必要があります。その後、応答のHSTSヘッダーを返します。スペックから

引用:https://tools.ietf.org/html/rfc6797#section-7.2

アンHSTSホストは非セキュアトランスポートを介して搬送 HTTP応答でSTSヘッダーフィールドを含んではいけません。

関連する問題