首页 > 其他分享 >为什么Google在JSON响应中添加了`while(1);`?

为什么Google在JSON响应中添加了`while(1);`?

时间:2023-10-15 23:46:21浏览次数:40  
标签:Google false JSON 响应 while &&&

内容来自 DOC https://q.houxu6.top/?s=为什么Google在JSON响应中添加了while(1);

为什么Google在(私有)JSON响应前加上while(1);

例如,这是在Google日历中打开和关闭日历时的响应:

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

我猜测这是为了防止人们对其进行eval()操作,但只需要替换掉while就可以了。我猜测这个eval预防措施是为了确保人们编写安全的JSON解析代码。

我在其他几个地方也见过这种做法,但以Google(邮件、日历、联系人等)为甚。奇怪的是,谷歌文档使用的是&&&START&&&,而谷歌联系人似乎使用的是while(1); &&&START&&&

这是怎么回事?


它防止了JSON劫持,这是一项主要的JSON安全问题,自2011年以来已在所有主要浏览器中正式修复(https://security.stackexchange.com/questions/155518/why-json-hijacking-attack-doesnt-work-in-modern-browsers-how-was-it-fixed)。

牵强的例子:假设Google有一个URL,如mail.google.com/json?action=inbox,它会以JSON格式返回您的收件箱中的前50条消息。其他域上的恶意网站由于同源策略无法发出AJAX请求来获取这些数据,但它们可以通过<script>标签包含该URL。URL使用的cookie访问,通过覆盖全局数组构造函数或访问器方法,它们可以在设置对象(数组或哈希)属性时调用一个名为的方法,从而允许它们读取JSON内容。

while(1);&&&BLAH&&&可以防止这种情况:在mail.google.com上的AJAX请求将完全访问文本内容,并可以将其剥离。但是,插入<script>标签会盲目执行JavaScript,而没有任何处理,导致无限循环或语法错误。

这并不能解决跨站点请求伪造(cross-site request forgery)的问题。

标签:Google,false,JSON,响应,while,&&&
From: https://www.cnblogs.com/xiaomandujia/p/17766463.html

相关文章

  • bat批处理,无限循环,类似while
    bat批处理,没有while这样的循环,那就要自己创建了。一、用:loop:loopecho%num%set/anum+=1if%num%lss10goto:loop二、用forFOR/L%NIN()DO@echoOops三、四、免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。参......
  • Google – Cloud Translation API
    前言通常网站内容翻译,我们都不推荐使用GoogleTranslate。但网站中一些不那么重要的内容确实可以用GoogleTranslate。比如CustomerReviews。这篇是续 GoogleMapsEmbedAPI&JavaScriptAPIGoogle–ReviewsYouTubeDataAPI又一篇关于GoogleCloudAPI的教程。......
  • nbcio-boot升级springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json问题
    升级后,运行显示项目的时候出现下面错误2023-08-1210:57:39.174[http-nio-8080-exec-3][1;31mERROR[0;39m[36morg.jeecg.common.aspect.DictAspect:104[0;39m-json解析失败Java8date/timetype`java.time.LocalDateTime`notsupportedbydefault:addModule"com.faster......
  • js对json数组中的json对象去重
    实现思路:使用map()方法将JSON对象转换为字符串,并使用Set对象去除重复项。然后,我们将字符串再次转换为JSON对象,并使用Array.from()方法将其转换为数组。这样,我们就得到了一个去重后的JSON对象数组。 letarr=[{name:'zhangsan',age:10},{name:'lisi',age:30},{name:'zha......
  • samtools: error while loading shared libraries: libcrypto.so.1.0.0: cannot open
     001、问题:conda安装samtools后调用出现如下报错:samtools:errorwhileloadingsharedlibraries:libcrypto.so.1.0.0:cannotopensharedobjectfile:Nosuchfileordirectory 002、解决方法(base)[root@pc1home]#find~-name"libcrypto.so.1*"##......
  • 使用do{ } while(0)的好处
    看了网上一些描述,总结下来使用do{}while(0)的好处,主要比较适用的好处有两点:1.实现goto的功能,解决不能使用goto的地方2.函数的宏定义给出两个例子1.当你执行一段代码到一半,想跳过剩下的一半的时候,如果你正处于do while循环中,则能用break达到这个目的。如下伪代码do......
  • ORA-04021: timeout occurred while waiting to lock object
    一、问题现象DG备库异常关闭二、结合日志进行分析alter日志 对应trc文件49891.trc  三、查询官方文档,找到解决办法   SQL>altersystemset"_adg_parselock_timeout"=500scope=bothsid='*';  ......
  • Python JSON 库对 UTF8 字符的处理方式分析
    默认情况在使用json模块的json.dump时,默认会将非ASCII字符(中文字符等)进行Unicode转义,保证最终文件只有ASCII字符。例如下述代码:importjsonwithopen("text.json","w")asf:data={'1':111,'2':"你好",'3':"Hello",�......
  • json转excle代码
    一、需要安装pandas二、我的json文件内容[{"name":"John","age":28,"city":"NewYork"},{"name":"Alice","age":24,"city":"SanFrancisco"},{"name":"Bob......
  • 前端 - 使用json-server搭建单机mock平台
    使用json-server搭建单机mock平台 简介json-server是一个Node模块,可以指定一个json文件作为数据源,运行Express服务器。可以用来在本地快速搭建一个RESTAPI风格的后端服务,模拟服务端接口数据。官网地址:json-server-npm(npmjs.com)Github地址:GitHub-typicode/json-se......