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”) 不能用作相对路径引用的第一段,因为
这将被误认为是方案名称。这样的段必须是
前面有一个点段(例如“/”这个:那个“)来表示相对-
路径引用