使用javascript动态xsrf

时间:2011-02-09 18:48:19

标签: php html security csrf

我只是想知道是否有可能xsrf攻击这个:

<form ...>
<input type="hidden" name="token" value="xsrf-generated-token" />
... fields+submit button ...
</form>

使用javascript - 如:

  • 攻击者让我到他的网站
  • 然后他用GET / admin / users / test / edit
  • 调用javascript
  • 他解析xsrf令牌(使用正则表达式 - 由于同源政策,dom无效)
  • 并发送签名编辑...

也不应该是由令牌签名的GET / admin / users / test / edit吗?

1 个答案:

答案 0 :(得分:2)

原因是正常的ajax请求(使用XHR)受the same origin policy的限制。这意味着为了实现这一点,您首先需要利用XSS漏洞才能执行CSRF漏洞。

现在,似乎JSONP可能是一种解决方法。但事实并非如此。由于JSONP使用脚本标记,因此请求的结果将被正确输入。由于结果是HTML而不是JS,因此应该抛出语法错误

因此,如果没有先破坏网站本身,就无法获得令牌。但应注意两件事情,这完全取决于:

  1. 所有浏览器都正确实施相同的原始政策保护

  2. 您没有通过JSON将令牌传递给表单(如果您是,JSONP将能够读取它)。