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

Flu*_*ffy 5 javascript csrf

可能重复:
为什么在XmlHttpRequest响应中有"while(1);"?
Gmail中的while(1)有什么作用

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

Dan*_*rka 5

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

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