4

サイトで HttpOnly を有効にしました。

<configuration>
    <system.web>
        <httpCookies httpOnlyCookies="true" requireSSL="true" />
    </system.web>
</configuration>

安全でない地域でサイトにアクセスすると、これは正常に機能します。しかし、安全なライブ リージョン (Https) では、これは機能せず、セッション キーを取得できます。それを軽減する方法。非常に役立つアイデア。

Asp.Net 2.0で試しています

4

1 に答える 1

2

ここにはたくさんのソリューションがあります..これらのソリューションの中から、ニーズに合ったものを自由に選択してください

  • Global.asax で、Session_Start メソッドを次のように上書きします。

    <script runat="server">       
     void Session_Start(object sender, EventArgs e) 
    {
    
        if(Response.Cookies.Count > 0)
        foreach(string s in Response.Cookies.AllKeys)
         if(s == System.Web.Security.FormsAuthentication.FormsCookieName ||
                s.ToLower().Equals("asp.net_sessionid") )
        Response.Cookies[s].HttpOnly = false;
    

    }


参照: http://nerd.steveferson.com/2007/09/14/act-sessionid-and-login-problems-with-asp-net-20/#.URiXUqWzd9c

  • ASP.NET 1.1 では、System.Net.Cookie クラスは HttpOnly プロパティをサポートしていないことに注意してください。したがって、HttpOnly 属性を Cookie に追加するには、次のコードをアプリケーションの

    Global.asax の Application_EndRequest イベント ハンドラー:

    protected void Application_EndRequest(Object sender, EventArgs e)
    {
      string authCookie = FormsAuthentication.FormsCookieName;
    
      foreach (string sCookie in Response.Cookies)
      {
            if (sCookie.Equals(authCookie))
            {
                  Response.Cookies[sCookie].Path += ";HttpOnly";
            }
      }
    }
    



参照: http://blogs.msdn.com/b/dansellers/archive/2006/03/13/550947.aspx

  • これを Global.asax に追加します

    void Application_EndRequest(Object sender, EventArgs e)
    {
       if (Response.Cookies.Count > 0)
       {
           foreach (string s in Response.Cookies.AllKeys)
           {
               if (s == "ASP.NET_SessionId")
               {
                   Response.Cookies["ASP.NET_SessionId"].HttpOnly = false;
               }
           }
       }
    

    }

参照: このフォーラムからhttp://forums.asp.net/p/955272/1177574.aspx#1177574

Scott Hanselman による この Post HttpOnly Cookies on ASP.NET 1.1を試すこともできますが、その ASP.NET 1.1

于 2013-02-11T07:17:24.623 に答える