ASP.NETセッションCookieにセキュアフラグを設定するにはどうすればよいですか?
-
22-07-2019 - |
質問
ASP.NETセッションCookieにセキュアフラグを設定して、HTTPSでのみ送信され、プレーンなHTTPでは送信されないようにするにはどうすればよいですか?
解決
2つの方法があります。httpCookies
の1つのweb.config
要素を使用すると、requireSSL
を有効にできます。また、フォーム構成内でも有効にする必要があります。
わかりやすく編集:
これを<system.web>
<httpCookies requireSSL="true" />
他のヒント
<system.web>
要素に、次の要素を追加します。
<httpCookies requireSSL="true" />
ただし、<forms>
ブロックにsystem.web\authentication
要素がある場合、これはhttpCookies
の設定を上書きし、デフォルトのfalse
に戻します。
この場合、requireSSL="true"
属性をフォーム要素にも追加する必要があります。
つまり、次のようになります:
<system.web>
<authentication mode="Forms">
<forms requireSSL="true">
<!-- forms content -->
</forms>
</authentication>
</system.web>
エンタープライズ環境でチェックインされたコードについて話している場合、物事はすぐに厄介になります。最善の方法は、 web.Release.config に次のものを含めることです。
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<authentication>
<forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
</authentication>
</system.web>
そのため、開発者は影響を受けず(デバッグで実行)、リリースビルドを取得するサーバーのみがCookieをSSLにする必要があります。
secure-この属性は、リクエストがHTTPSなどの安全なチャネルを介して送信されている場合にのみ、Cookieを送信するようブラウザに指示します。これにより、Cookieが暗号化されていない要求で渡されるのを防ぐことができます。 HTTPとHTTPSの両方でアプリケーションにアクセスできる場合、Cookieがクリアテキストで送信される可能性があります。
所属していません StackOverflow