Google plus 返回带有 )]}'
的 ajax 请求在第一行。我听说它是针对 XSS 的保护。有没有任何例子,如果没有这种保护,任何人怎么能这样做?
最佳答案
这是我对这里发生的事情的最佳猜测。
首先,google json 格式的其他方面不是很有效的 json。因此,除了任何保护目的之外,他们可能会使用这个特定的字符串来表示文件的其余部分是 google-json 格式并且需要相应地解释。
使用此约定还意味着数据馈送不会通过来自脚本标签的调用执行,也不会通过直接从 eval() 解释 javascript。这可以确保前端开发人员通过解析器传递内容,这将阻止任何植入的代码执行。
因此,为了回答您的问题,这可以防止两种看似合理的攻击,一种是通过脚本标签进行跨站点攻击,但更有趣的是站点内攻击。两种攻击都假设:
举个简单的例子,假设用户想出了如何获取类似示例的字符串
["example"]
并将其更改为 "];alert('example');
[""];alert('example');"]
现在,如果该数据出现在另一个用户的提要中,攻击者就可以在用户的浏览器中执行任意代码。由于它在站点内,因此 cookie 被发送到服务器,攻击者可以自动执行诸如共享帖子或从用户帐户向人员发送消息等操作。
在 Google 场景中,这些攻击因多种原因不起作用。在攻击代码运行之前,前 5 个字符将导致 javascript 错误。另外,由于开发人员被迫解析代码而不是意外地通过 eval 运行它,因此这种做法将阻止代码无论如何执行。
关于google-plus - "Anti-XSS protection"通过在 ajax 响应之前添加 )]}',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6672322/