Google会像这样返回json:throw 1; <dont be evil> { foo: bar}和Facebook的ajax有这样的json:for(;;); {"error":0,"errorSummary": ""}他们为什么要放置将停止执行并生成无效json的代码?如果它无效,他们将如何解析它;如果您尝试评估它,它将崩溃吗?他们只是将其从字符串中删除(似乎很昂贵)吗?这有什么安全优势吗?出于安全考虑,对此:如果刮板在另一个域上,则它们将不得不使用script标签来获取数据,因为XHR无法跨域工作。即使没有,for(;;);攻击者也将如何获取数据?它没有分配给变量,所以不会因为没有引用而被垃圾回收吗?基本上要获得跨域数据,他们必须要做<script src="http://target.com/json.js"></script>但是,即使没有前置崩溃脚本,攻击者也无法使用任何Json数据,除非将其分配给可以全局访问的变量(在这些情况下不是)。崩溃代码实际上无能为力,因为即使没有崩溃代码,他们也必须使用服务器端脚本来使用其站点上的数据。
添加回答
举报
0/150
提交
取消