我只是想知道是否有可能xsrf攻击这个:
<form ...>
<input type="hidden" name="token" value="xsrf-generated-token" />
... fields+submit button ...
</form>
使用javascript - 如:
也不应该是由令牌签名的GET / admin / users / test / edit吗?
答案 0 :(得分:2)
原因是正常的ajax请求(使用XHR)受the same origin policy的限制。这意味着为了实现这一点,您首先需要利用XSS漏洞才能执行CSRF漏洞。
现在,似乎JSONP可能是一种解决方法。但事实并非如此。由于JSONP使用脚本标记,因此请求的结果将被正确输入。由于结果是HTML而不是JS,因此应该抛出语法错误 。
因此,如果没有先破坏网站本身,就无法获得令牌。但应注意两件事情,这完全取决于:
所有浏览器都正确实施相同的原始政策保护
您没有通过JSON将令牌传递给表单(如果您是,JSONP将能够读取它)。