kil*_*yte 5 c# asp.net security cookies asp.net-mvc
在 ASP.NET MVC 中,防止有效 cookie 一次被多个客户端使用的“最佳实践”是什么?
在这种情况下,我们使用了 OWASP 的所有技巧。
这一切都很好,可以防止用户更改值,但它不能防止不良行为者窃取整个 cookie 并在它仍然有效时在其他地方重新使用它(“cookie 重播”或“会话固定”,具体取决于谁)你问)。据我所知,没有标准的 .NET 配置或样板文件可以防止这种情况发生。
例如,用户 A 登录,其身份验证 cookie 会持续t几分钟。该用户 PC 上的恶意软件会忽略 cookie 上的仅 HTTP/安全设置,并能够检索实际存储的 cookie,并将其发送给我们的坏人。然后,不良行为者可以使用 cookie 编辑工具将其添加到浏览器中,并以用户 A 的身份连接到站点,直到 cookie 过期或用户 A 注销(使会话无效)。
理想情况下,是否可以配置 .NET,以便在发现两个客户端同时使用 cookie 时会话失效?
评论过的类似项目:
哦,SO社区,我们知道你们有多么喜欢“重复”。
外部修复建议:
bool值。错误——这只会阻止坏人在目标用户注销后使用 cookie。它无法阻止坏人与目标用户同时进行活动。如果你的目标是
防止不良行为者窃取整个 cookie 并在其仍然有效时在其他地方重新使用它
那么答案是否定的。不可能。
从 http 请求中获取的信息量大致如下:
由于手头的信息量有限,你确实无法区分使用相同 cookie + 浏览器 + IP 的两个用户。
这就好像两个人使用同一台打印机打印了同一条消息,而您的任务是找出哪条消息是由谁打印的。
您能做的最好的事情就是每次用户想要执行任何敏感操作时都要求输入密码,并为其分配一次性令牌。(不方便用户使用)
或者,您可以通过仅在新 IP 与登录 IP 不匹配时才需要它来使其更加友好。(对移动用户不友好,因为他们的IP一直在变化)
| 归档时间: |
|
| 查看次数: |
2418 次 |
| 最近记录: |