`while(1){}`如何帮助防止CSRF?

时间:2011-12-08 18:47:00

标签: javascript csrf

  

可能重复:
  Why have “while(1);” in XmlHttpRequest response?
  What does while(1) in Gmail do

我最近偶然发现了使用while (1==1) {}预先填充AJAX返回数据的做法,以便为CSRF攻击提供更高的安全性,但我没有看到该代码如何有用。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:5)

尝试执行CSRF攻击的远程站点需要使用JSONP调用加载数据。 (在页面中注入脚本块) 如果您尝试进行JSONP调用并将脚本注入到您的网页中,则javascript vm会超时无法加载数据(因为while循环)。所以攻击者无法看到数据。

这可确保只有匹配相同原始策略的客户端(通过正常的ajax调用加载数据)才能使用该数据,从而防止任何攻击者从远程站点访问数据。