我需要为Web应用程序添加CSRF保护。
问题在于,app严重依赖于链接(GET请求)来对数据库进行更改。
使用类生成链接,因此我可以轻松地为每个链接添加CSRF令牌的额外参数。
但是,我知道GET请求中的CSRF令牌可能不够好。
请注意,app只能通过HTTPS使用,因此在客户端/服务器通信期间不能公开/窃取GET参数(但仍然存在历史窃取问题)。
在此设置中,是否可以将CSRF令牌参数视为“足够安全”?
如果没有,解决这个问题的最佳方法是什么?我想到的只是将我的每个链接包装成一个表单(显式为ether,或者使用JavaScript在onSubmit上创建表单)。
答案 0 :(得分:4)
为了能够读取对CSRF攻击请求的响应,攻击者需要让受害者执行他的JavaScript代码。因此,CSRF对“GET”请求几乎没有用。这假设您遵循“GET”请求不应修改任何数据的标准,并且只需使用“POST”进行任何修改
也就是说,如果您有任何POST请求,您应该考虑CSRF保护。