我需要向 Web 应用程序添加 CSRF 保护。
问题在于,该应用程序严重依赖链接(即 GET 请求)来对数据库进行更改。
链接是使用类生成的,因此我可以轻松地为每个链接添加 CSRF 令牌的额外参数。
但是,我知道 GET 请求中的 CSRF 令牌可能不是足够好的保护。
请注意,该应用程序只能通过 HTTPS 访问,因此 GET 参数在客户端/服务器通信期间无法公开/被盗(但历史记录窃取问题仍然存在)。
在此设置中 GET CSRF 令牌参数是否可以被认为“足够安全”?
如果不是,解决这个问题的最佳方法是什么?我唯一想到的就是将每个链接包装到一个表单中(显式地以太坊,或者使用 JavaScript 创建 onSubmit 表单)。
为了能够读取对 CSRF 攻击请求的响应,攻击者需要让受害者执行他的 JavaScript 代码。因此,“GET”请求的 CSRF 几乎没有用。假设您遵循“GET”请求不应修改任何数据的标准,并且仅需要使用“POST”来完成任何修改
- 使用基于 cookie 的身份验证和 SSL 应该可以让您远离试图更改参数的人
- 您可能需要引入一些基于时间戳的签名以避免重放攻击
也就是说,如果您有任何 POST 请求,您应该考虑 CSRF 保护。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)