在asp.net中,我实现了一个IHttpModule来缓解CSRF攻击。它向GET响应html注入一个带有asp.net SessionID的隐藏表单参数。然后在POST上检查以确保隐藏参数的值与当前SessionID匹配。据我所知,获取SessionID值的唯一方法是从cookie中获取,该cookie无法被恶意站点读取或确定。有什么我可以忽略的吗?CSRF验证令牌:会话ID安全吗?
7
A
回答
8
这种方法是正确的。您需要确保通过GET操作提供的所有操作都是“安全的”(无论如何,这是最佳实践),因为您只将XSRF保护应用于POST。
对于额外的保险,您也可以在GET上使用它(通过为所有链接添加URL参数,并在每个GET请求中检查它),但这很麻烦。
如果您是偏执偏执的人,您可以为替代ID选择一个不同的随机数。即使浏览器错误地将您的会话cookie访问到其他网站上的某些敌对Javascript,也可以保护您。创建会话时,选择另一个大的随机数并将其存储在会话中。
6
理想情况下,你会想使用会话id以外的东西,但基本上就是这样。 OWASP建议使用存储在用户会话中的随机表单元素名称。这样攻击者甚至不能伪造正确的隐藏域。
+0
随机化表单元素名称是一个有趣的想法。感谢您的链接。 – ironsam 2009-02-06 18:42:21
相关问题
- 1. 暴露会话的CSRF保护令牌安全吗?
- 2. CSRF令牌验证
- 3. 会话令牌安全parse.com
- 4. csrf令牌,安全问题?
- 5. CSRF令牌春季安全
- 6. 会话ID验证 - 安全 - 离子/角
- 7. 如何验证CSRF令牌?
- 8. 无法验证CSRF令牌! Angular 2和弹簧安全
- 9. 登录,用户身份验证,会话和csrf令牌
- 10. Laravel SPA应该使用CSRF令牌来保证安全吗?
- 11. Spring安全OAuth2 - 验证访问令牌
- 12. 身份验证令牌安全
- 13. AngularJS安全令牌与会话
- 14. 令牌身份验证Rest API会话
- 15. Yii CSRF令牌无法验证
- 16. 无CSRF令牌的身份验证
- 17. PHP CSRF表单令牌+验证建议
- 18. CSRF令牌会话得到重置
- 19. Spring安全会话ID作为令牌配置
- 20. WordPress的:通过用户ID与令牌/验证会话
- 21. Firebase验证ID令牌
- 22. 会话ID与令牌
- 23. 使用JWT令牌的安全令牌验证错误 - HDInsight
- 24. 这是设置令牌CSRF的安全方式吗?
- 25. CSRF安全风险,如果验证令牌在标题而不是POST正文
- 26. CSRF令牌应该经过服务器端验证吗?
- 27. 未验证CSRF令牌的真实性时,无法重置用户会话
- 28. 在会话过期后无法验证CSRF令牌的真实性 - Rails + devise + redis
- 29. 长身份验证会话和安全
- 30. 使用会话ID在安全网页上验证用户
我现在可能不会担心GET,因为http无法改变状态(但显然可能)。只要我们保持这个惯例/标准,我们应该没问题。我可能会考虑使用SessionID以外的值来提供额外的安全性,谢谢。 – ironsam 2009-02-06 18:46:31