我们已经通过渗透测试通知我们,我们的网站无法保护ASPXAUTH和ASP.NET_SessionId cookie。
我已经进行了一些更改以保护cookie。
我不知道为什么第二个重要,但是没有它,ASP.NET_SessionId cookie永远不会在响应对象中显示为安全。
使用Chrome Developer工具,我在多个时间点拍摄了屏幕截图,其中某些行为对我来说似乎是意外的。如果有人可以看一下并让我知道情况是否正确,我将不胜感激。
此屏幕快照是在清除网站的Cookie后在初始页面加载时拍摄的: Upon initial page load
这两个SessionId cookie对我来说似乎很奇怪,为什么会有一个安全的,而不是安全的?
此屏幕快照是在单击以下内容登录网站后拍摄的:After clicking log in
这对我来说意义不大,为什么请求中的ASP.NET_SessionId cookie没有标记为安全或HttpOnly,这是预期的行为吗?我假设响应中没有发送SessionId cookie是正确的行为
此屏幕快照是在单击网站上的链接以查看新页面后拍摄的:enter image description here
如果可能的话,这对我来说意义不大。有问题的两个cookie是在请求中发送的,都没有设置HttpOnly或Secure。这是正确的行为吗?此外,响应中没有显示任何cookie正确吗?
我在StackOverflow和Google上花费了很多时间,试图找到配置这些cookie的正确方法。我只是不知道我做的是否正确,因为我不确定固定的实现应该是什么样子。
非常感谢您能提供的帮助。
谢谢你, -内森(Nathan)
答案 0 :(得分:0)
看看SO How to secure the ASP.NET_SessionId cookie?上的类似线程
您是否在会话开始事件期间设置cookie的安全标记?像这样的东西。
protected void Session_Start(Object sender, EventArgs e)
{
// secure the ASP.NET Session ID only if using SSL
// if you don't check for the issecureconnection, it will not work.
if (Request.IsSecureConnection == true)
Response.Cookies ["ASP.NET_SessionID"].Secure = true;
}