为了账号安全,请及时绑定邮箱和手机立即绑定

人们为什么要输入“ throw 1; json响应前面的<dont be evil>”和“

人们为什么要输入“ throw 1; json响应前面的<dont be evil>”和“

元芳怎么了 2019-11-21 14:05:04
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数据,除非将其分配给可以全局访问的变量(在这些情况下不是)。崩溃代码实际上无能为力,因为即使没有崩溃代码,他们也必须使用服务器端脚本来使用其站点上的数据。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 303 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号