“同源策略”和从谷歌加载的脚本 - 一个易受攻击的解决方案?

时间:2010-01-19 13:24:00

标签: security browser same-origin-policy

我在SO“jQuery Linking vs. Download”中阅读了这个问题,但我不明白。

如果您在http://yourserver.com上托管页面,但从http://ajax.googleapis.com加载jQuery库然后使用jQuery脚本中定义的函数会发生什么?

在这种情况下,“同源政策”不计算在内吗?我的意思是,您可以将AJAX调用回{{​​1}}吗? 执行的JavaScript是否被视为来自http://yourserver.com

我的观点是,您不知道用户从某个第三方服务器(对不起,Google)下载了什么,而且他的计算机上执行的代码仍然与他从服务器上下载的代码一样好? / p>

编辑:这是否意味着_如果我使用来自第三方的网络统计计数器我不太了解,他们可能会“注入”一些代码并调用我的网络服务,就好像他们的代码是一部分一样我的?

3 个答案:

答案 0 :(得分:6)

网站http://yourserver.com/的所有者应该信任其从其他服务器(在本例中为Google)引用的内容。相同的原始政策不适用于“脚本”标签。

当然,外部服务器的脚本(一旦加载)可以访问整个DOM:因此,如果外部内容被泄露,则可能存在安全风险。

与网络世界中的许多事情一样,它归结为信任和持续管理。

修改

  

这是否意味着_如果我使用网络   来自第三方的统计数据我   不太了解,他们可能会   “注入”一些代码并调用我的   Web服务,好像他们的代码是一部分   我的?

答案 1 :(得分:2)

回答编辑评论:是的。除非计数器包含在iframe标记中,否则就好像它是您网站的一部分,可以调用您的Web服务,访问您的cookie等。

答案 2 :(得分:1)

是的,该政策不适用于<script>代码。

如果有人能够攻击谷歌的脚本商店,它会影响每个域提供的每个页面,这些页面使用google.com作为脚本的主机。