在保护ASPXAUTH和ASP.NET_SessionId cookie之后,这是正确的行为吗?

时间:2019-02-19 21:03:45

标签: security cookies authorization sessionid httponly

我们已经通过渗透测试通知我们,我们的网站无法保护ASPXAUTH和ASP.NET_SessionId cookie。

我已经进行了一些更改以保护cookie。

  • 1)将requireSSL =“ true”属性添加到System.Web-> web.config中的Authentication-> Forms元素。
  • 2)在用于在初始登录和注销时清除ASP.NET_SessionId和ASPXAUTH cookie的代码中,将它们设置为安全且仅HTTP。
  • 3)向Application_EndRequest方法Global.asax添加了以下代码: 在以下位置专门设置ASP.NET_SessionId和ASPXAUTH cookie Response.Cookies,以确保安全和HttpOnly。

我不知道为什么第二个重要,但是没有它,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)

1 个答案:

答案 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;
}
相关问题