猿问

为什么Google在其JSON响应中占优势(1)?

为什么Google在其JSON响应中占优势(1)?

为什么谷歌会while(1);他们的(私人)JSON响应?

例如,以下是打开和关闭日历时的响应谷歌日历:

while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],
  ['remindOnRespondedEventsOnly','true'],
  ['hideInvitations_remindOnRespondedEventsOnly','false_true'],
  ['Calendar ID stripped for privacy','false'],['smsVerifiedFlag','true']]]]

我认为这是为了防止人们eval()但是你真正需要做的就是替换while然后你就完蛋了。我的假设是让人们编写安全的JSON解析代码。

我也在其他几个地方见过这个,但在Google(邮件、日历、联系人等)中使用的更多。奇怪的是,谷歌文档一开始&&&START&&&相反,谷歌的联系人似乎是从while(1); &&&START&&&.

这里发生了什么事?


交互式爱情
浏览 730回答 3
3回答

一只名叫tom的猫

这是为了确保其他网站不能做肮脏的伎俩,试图窃取你的数据。例如,替换数组构造函数,然后通过<script>标记,恶意第三方站点可能从JSON响应中窃取数据。把while(1);开始时,脚本将挂起。另一方面,使用XHR和单独的JSON解析器的相同站点请求很容易忽略while(1);前缀。
随时随地看视频慕课网APP
我要回答