Javascript 在src URL中没有协议的脚本会出什么问题?

Javascript 在src URL中没有协议的脚本会出什么问题?,javascript,security,cross-domain,xss,Javascript,Security,Cross Domain,Xss,从http和https协议提供的脚本的src URL中省略协议是否完全安全 例如,Google CDN上的jQuery代码可以如下访问: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> Facebook和jQuery建议开发者在脚本标签中添加一个没有协议的源代码。他们的CDN同时提供HTTP和HTTPS协议,所以若其中包含脚本的页面是以HTTP或HT

http
https
协议提供的脚本的src URL中省略协议是否完全安全

例如,Google CDN上的jQuery代码可以如下访问:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

Facebook和jQuery建议开发者在脚本标签中添加一个没有协议的源代码。他们的CDN同时提供HTTP和HTTPS协议,所以若其中包含脚本的页面是以HTTP或HTTPS提供的,它将获取具有匹配协议的脚本。这是这种做法的好处

这有什么问题吗?我最关心的是安全问题

从以下脚本的src URL中省略协议是完全安全的吗 从http和https协议提供服务

当使用
网络路径引用时
当浏览器通过https查看页面时,浏览器将自动使用
https:
协议请求文件,否则将使用
http:
请求文件

但是,当使用
网络路径参考
在本地查看文件时,浏览器将使用
文件:
协议请求文件

此处有更多信息:。它没有提到安全性,但行为的性质确保了根据需要选择https/http

引述:

4.2。相对参考

相对引用利用了分层语法
(第1.2.3节)表示相对于名称空间的URI引用 另一个层次URI的

  relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

  relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty
相对引用引用的URI,也称为 通过应用引用解析获得目标URI 第5节的算法

以两个斜杠字符开头的相对引用是 称为网络路径参考;这样的引用很少使用。 以单个斜杠字符开头的相对引用是
称为绝对路径参考。一个相对的引用,它没有
不以斜杠字符开头称为相对路径引用

包含冒号字符的路径段(例如,“this:that”) 不能用作相对路径引用的第一段,因为
这将被误认为是方案名称。这样的段必须是
前面有一个点段(例如“/”这个:那个“)来表示相对-
路径引用