首页  >  文章  >  web前端  >  为什么 Google 在 JSON 响应前添加'while(1);”?

为什么 Google 在 JSON 响应前添加'while(1);”?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-24 03:42:09511浏览

Why Does Google Prepend

前置 while(1); JSON 响应:Google 为什么这样做?

向 Google 的私有 JSON 端点发出 API 请求时,您可能会注意到一个不寻常的前缀:while(1);。这引发了对其目的和潜在影响的疑问。

防止 JSON 劫持

此前缀的主要原因是防止 JSON 劫持。 2011 年之前,浏览器允许网站拦截和修改 AJAX 请求期间动态创建的对象。通过前置 while(1);对于 JSON 响应,Google 会阻止浏览器将这些响应评估为 JavaScript 代码,从而有效阻止潜在的劫持攻击。

避免 Eval() 漏洞

现代浏览器强制执行安全 JSON 解析,使得通过eval()执行恶意代码变得困难。然而, while(1);前缀通过为攻击者创建语法歧义来提供额外的安全层。即使他们删除了前缀,剩余的代码也会导致无限循环或语法错误,从而使攻击无效。

Google 服务之间的变化

不同的 Google 服务使用此前缀的变体。 Google 文档使用 &&&START&&& 而不是 while(1);,而 Google 通讯录则将 &&&START&&& 附加到 while(1);。这与防止 JSON 劫持的目的相同。

结论

Google 包含了 while(1);其私有 JSON 响应中的类似前缀是针对 JSON 劫持攻击的主动措施。它确保这些响应不会被视为可执行的 JavaScript 代码,从而保护用户数据并防止恶意活动。

以上是为什么 Google 在 JSON 响应前添加'while(1);”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn