我们为我们的网站启用了HttpOnly.
<configuration> <system.web> <httpCookies httpOnlyCookies="true" requireSSL="true" /> </system.web> </configuration>
当我们在非安全区域访问该站点时,这工作正常.但是在Secure live region(Https)中,这不起作用,我们能够获取会话密钥.如何减轻它.任何想法都会有所帮助.
我在Asp.Net 2.0中尝试
解决方法
我这里有很多解决方案..请随意选择满足您需求的解决方案
>在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;
}
>请注意,在ASP.NET 1.1中,System.Net.Cookie类不支持
HttpOnly属性.因此,要添加一个HttpOnly属性
您可以将以下代码添加到您的应用程序中
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。