跨域和谷歌CDN用于jQuery

8

使用Google CDN作为jquery的来源是否违反了网页不使用跨域请求的规则?我们是否信任Google能够做到这一点?

2个回答

9
浏览器允许使用来自外部网站的脚本标签。这是因为假定您想要加载该功能。但是,所加载的脚本不能直接与外部域通信(除非采用CORS的XHR同源策略)。因此,不应允许未经检查的用户输入从外部站点加载脚本。外部脚本可能会执行您不希望执行的操作,但如果它们来自受信任的来源,则应该是安全的。
如果Google被发现通过其CDN进行注入,那么将会有严重的后果,我怀疑这种情况根本不会发生,即使发生了,也会比您注意到问题更快地得到纠正。

+1,我实际上更喜欢你的解释。 - karim79
当然,如果您不信任谷歌,您可以随时从自己的CDN /基础设施提供它。 - mithrandi

2
不,这并没有违反跨域请求的规则。当您从Google的CDN中包含jQuery时,您只是将一个资源包含到您的页面中(就像链接到图像一样)。这不属于您所指的同源策略安全概念,该安全概念主要涵盖XHR(ajax)请求。

在我看来,包括<script>标签应该会带来与其他任何标签类似的安全问题。浏览器至少应该警告用户页面中正在执行来自不同网站的脚本。 - Vinodh Ramasubramanian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接