注:これは、[RequireSSL]属性に関連するASP.NETMVCの質問ではありません。それは完全に異なります-ちょうど同じ名前を持っています。
ASP.NETフォーム認証にはRequireSSLプロパティがあり、ASP.NETメンバーシップの認証CookieがSSL経由でのみ送信される必要があります。これは、誰かがCookieを盗んだり(ネットワークスニッフィングなど)、ユーザーになりすましたりするのを防ぐためです。
だから私は疑問に思っています-MSが行ったすべてのセキュリティ意識のある変更(httpOnly Cookieをデフォルトにするなど)で、なぜrequireSSL
デフォルトにされないのtrue
ですか?
クッキースニッフィングは「ネグリビグル」セキュリティリスクと見なされますか?
接続によって実際に安全な/個人データにアクセスできる場合を除いて、falseのままにしておくことは許容できるリスクと見なされますか?受け入れられない場合-ユーザーをhttpに戻し、それでもユーザーが誰であるかを知るにはどうすればよいですか?
ネットワークを通過するときにフォーム認証Cookieがキャプチャされて改ざんされるのを防ぐには、認証されたアクセスが必要なすべてのページでSSLを使用し、要素にrequireSSL = "true"を設定して、フォーム認証チケットをSSLチャネルに制限するようにしてください。
フォーム認証CookieをSSLチャネルに制限するには
次のコードに示すように、要素にrequireSSL="true"を設定します。
requireSSL = "true"を設定することにより、ブラウザがCookieをサーバーに返送するかどうかを決定するセキュアCookieプロパティを設定します。セキュアプロパティが設定されている場合、Cookieは、HTTPSURLを使用して要求されたセキュアページにのみブラウザによって送信されます。
注:Cookieなしのセッションを使用している場合は、認証チケットがセキュリティで保護されていないチャネルを介して送信されないようにする必要があります。