asp.net - CSRF验证 token : session id safe?

标签 asp.net security csrf

在 asp.net 中,我正在实现一个 IHttpModule 来减轻 CSRF 攻击。它使用 GET 上的 asp.net SessionID 将隐藏的表单参数注入(inject)到响应 html 中。然后,在 POST 上,它会检查以确保隐藏参数的值与当前 SessionID 匹配。据我所知,获取SessionID值的唯一方法是从cookie中获取,恶意站点无法读取或确定cookie。有什么我忽略的吗?

最佳答案

这个做法是正确的。您需要确保通过 GET 操作可用的所有操作都是“安全的”(无论如何这是最佳实践),因为您仅将 XSRF 保护应用于 POST。

为了额外保险,您也可以在 GET 上使用它(通过向所有链接添加 URL 参数,并在每个 GET 请求中检查它),但这很麻烦。

如果您特别偏执,您可以为备用 ID 选择不同的随机数。即使浏览器错误地使您的 session cookie 被其他站点上的某些恶意 Javascript 访问,这也可以保护您。创建 session 时,选择另一个大的随机数并将其存储在您的 session 中。

关于asp.net - CSRF验证 token : session id safe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/518313/

相关文章:

python - 为什么 Django 管理员登录给我 403 CSRF 错误?

spring - 在 Spring 4.0.3 + Spring Security 3.2.3 + Thymeleaf 2.1.2 中将 CSRF 放入 Headers

c# - Ajax 更新面板和样式

c# - 将附加变量传递给 button_click() 方法

asp.net - 如何在任何给定时刻找到我的网站 (IIS7/asp.net) 的访问者/用户数量?

java - 为多人游戏获得良好的安全性

security - Shiro 用 DefaultSecurityManager 提示 "There is no session with id xxx"

javascript - ActiveX 在 IE 11 中不工作

cryptography - 您采用哪种安全软件开发实践?

php - 如何防止自动 AJAX 攻击