了解 Google 的 JSON 响应中的前置代码
Google 经常添加前言“while(1);”到其私有 JSON 响应的开始。这种做法引发了对其目的的质疑。
防止 JSON 劫持
此前置代码的主要原因是阻止 JSON 劫持。JSON 劫持是一个安全漏洞,允许攻击者通过使用外部脚本在 JSON 响应中包含恶意脚本来访问敏感数据。通过在前面添加“while(1);”,Google 会阻止脚本自动运行,因为代码会进入无限循环。
技术细节
执行 JSON 劫持通过利用浏览器允许网站动态改变“Array”和“Function”全局对象方法的行为这一事实。因此,攻击者可以设置对象的特定响应属性并执行任意代码。
替代语法
除了“while(1);”之外,Google 还采用了变体在不同的服务中:
这些变体的作用相同防止 JSON 劫持和促进安全 JSON 解析的目的。
浏览器兼容性
自 2011 年以来,JSON 劫持已通过 ECMAScript 5 的同源策略在所有主要浏览器中得到解决,它限制来自不同来源的脚本访问数据。但是,前置代码提供了额外的保护层,防止旧版浏览器或不合规网站中的潜在漏洞。
以上是为什么 Google 在其 JSON 响应中添加'while(1);”?的详细内容。更多信息请关注PHP中文网其他相关文章!