[英]Forms Authentication Cookie value vulnerability in asp.net
在asp.net中,我可以像往常一样使用表单身份验证登录,复制我们的auth cookie值,注销,使用Chrome的“编辑此Cookie”插件将cookie人工添加到客户端,刷新(匿名)登录页面嘿presto我再次登录 这似乎是一个漏洞 - 有没有办法使用标准表单auth修复它,或者我必须做一些事情,比如使用自定义Authorize属性覆盖asp.net mvc中的现有属性?
我不认为这本身就是一个漏洞。 在表单身份验证期间发生以下情
现在,至于为什么你看到你所看到的......你在注销前复制cookie。 因此,您复制的cookie永远不会注册注销(移动的到期时间)。 重新连接时,您仍然拥有有效的身份验证cookie。 现在,如果您的表单身份验证超时设置为...让我们说20分钟...如果您复制cookie并等待21分钟,那么此方法将失败,它已经过期。
Cookies总是很有魅力,我们对此无能为力。 我们能做的是阻止有人偷走cookie。
关于ASP.NET MVC,它可以很好地避免窃取cookie。 默认情况下,它作为安全性的一部分主要做法是:
对呈现给视图的字符串进行编码(如果您使用的是Razor,则不了解其他字符串)以防止XSS攻击。
请求验证(停止有潜在危险的数据到达应用程序)。
阻止JSON数据的GET访问。
使用防伪助手预防CSRF
关于cookie,Microsoft提供了HttpOnly
功能,这有助于隐藏javascript中的cookie。 您正在谈论的表单身份验证是一个HttpOnly
cookie意味着有人不能通过JavaScript窃取它,它更安全。
你可以用任何 cookie来做到这一点。 您可以检查/复制来自任何给定域的所有cookie,并根据需要进行欺骗。 您可以(仅) 自己这样做,因为它是您的PC(或用户登录到PC)。 显然,如果你在共享PC上,这是一个问题(在你的所有信息中)。
“复制你的cookie”的行为实际上是恶意软件企图窃取/劫持你的身份(或某些网站上的当前会话)的一种方式。 也就是说,除非你有一些恶意软件,否则你不能只是“复制别人的cookie”。
假设logout
已完成,您可以要求用户关闭其浏览器,以便从(文件)系统中删除过期的cookie。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.