CSR保护GET链接

时间:2012-09-11 13:32:27

标签: csrf

我需要为Web应用程序添加CSRF保护。

问题在于,app严重依赖于链接(GET请求)来对数据库进行更改。

使用类生成链接,因此我可以轻松地为每个链接添加CSRF令牌的额外参数。

但是,我知道GET请求中的CSRF令牌可能不够好。

请注意,app只能通过HTTPS使用,因此在客户端/服务器通信期间不能公开/窃取GET参数(但仍然存在历史窃取问题)。

在此设置中,是否可以将CSRF令牌参数视为“足够安全”?

如果没有,解决这个问题的最佳方法是什么?我想到的只是将我的每个链接包装成一个表单(显式为ether,或者使用JavaScript在onSubmit上创建表单)。

1 个答案:

答案 0 :(得分:4)

为了能够读取对CSRF攻击请求的响应,攻击者需要让受害者执行他的JavaScript代码。因此,CSRF对“GET”请求几乎没有用。这假设您遵循“GET”请求不应修改任何数据的标准,并且只需使用“POST”进行任何修改

  1. 使用基于cookie的身份验证和SSL应该让您远离那些试图更改参数的人
  2. 您可能希望根据时间戳引入一些签名,以避免重播攻击
  3. 也就是说,如果您有任何POST请求,您应该考虑CSRF保护。