Google Plus - "Anti-XSS protection"通过在 Ajax 响应之前添加 )]}'



Google plus返回第一行为)]}'的ajax请求。我听说这是针对XSS的保护。有没有例子说明在没有这种保护的情况下,人们可以做什么以及如何做呢?

这是我对这里发生的事情的最好猜测。

首先,google json格式还有其他方面不是很有效的json。所以,除了任何保护目的,他们可能使用这个特定的字符串来表示文件的其余部分是google-json格式,需要相应的解释。

使用此约定还意味着数据提要不会从脚本标记的调用中执行,也不会直接从eval()中解释javascript。这确保前端开发人员通过解析器传递内容,这将阻止任何植入的代码执行。

所以回答你的问题,有两种可能的攻击,这可以防止,一个跨站点通过一个脚本标签,但更有趣的是在站点内。两种攻击都假定:

  1. 在如何转义用户数据和
  2. 它被利用的方式允许攻击者将代码注入其中一个数据源。

作为一个简单的例子,假设一个用户想出了一个字符串,比如example

["example"] 

和把它改为 "];警报(例子);

[""];alert('example');"]

现在,如果该数据出现在另一个用户的提要中,攻击者可以在用户的浏览器中执行任意代码。由于它是在网站内,cookie被发送到服务器,攻击者可以自动地从用户的帐户分享帖子或给人发消息。

在Google的场景中,由于一些原因,这些攻击不会起作用。在攻击代码运行之前,前5个字符将导致javascript错误。另外,由于开发人员被迫解析代码,而不是意外地通过eval运行代码,这种做法将防止代码被执行。

正如其他人所说,它是防止跨站点脚本包含 (XSSI)

我们在Gruyere上这样解释:

第三,您应该确保该脚本不可执行。的这样做的标准方法是将一些不可执行的前缀附加到它,像])}while(1);在同一域中运行的脚本可以读取响应的内容并去掉前缀but在其他域中运行的脚本不能。

最新更新