1. ホーム
  2. c#

[解決済み] ASP.NET_SessionIdクッキーを保護するには?

2023-08-11 16:27:51

質問

.ASPXAUTH クッキーを https だけに設定しましたが、ASP.NET_SessionId で同じことを効果的に行う方法がよくわかりません。

サイト全体がHTTPSを使用しているので、httpとhttpsの両方で動作するCookieは必要ありません。

どのように解決するのですか?

次のコードは ブログの記事から引用しています。 :

// this code will mark the forms authentication cookie and the
// session cookie as Secure.
if (Response.Cookies.Count > 0)
{
    foreach (string s in Response.Cookies.AllKeys)
    {
        if (s == FormsAuthentication.FormsCookieName || "asp.net_sessionid".Equals(s, StringComparison.InvariantCultureIgnoreCase))
        {
             Response.Cookies[s].Secure = true;
        }
    }
}

global.asaxのEndRequestイベントハンドラにこれを追加すると、すべてのページ呼び出しに対してこれが起こるようになります。

注意: 編集が提案され break; ステートメントを追加する編集が提案されました。私はこの編集を、クッキーのうちの1つだけを強制的にセキュアにし、2つ目は無視されるという考えに基づいて、却下しました。カウンターまたは他のメトリックを追加して、両方がセキュアであると判断し、その時点でブレークすることは考えられないことではありません。