4

httphttps协议提供的脚本的 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 提供,它将获取具有匹配协议的脚本。这是这种做法的好处。

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

4

1 回答 1

4

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

是的。

当浏览器通过 HTTPS 查看页面时,浏览network-path reference器会自动请求带有协议的文件,否则它会请求带有.https:http:

但是,当使用network-path reference本地查看文件时,浏览器将使用file:协议请求文件。

这里有更多信息:RFC 3986。它没有提到安全性,但行为的性质确保根据需要选择 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”)的路径段不能用作相对路径引用的第一段,因为
它会被误认为是方案名称。这样的段之前必须有
一个点段(例如,“./this:that”)以进行相对
路径引用。

于 2013-04-11T00:52:42.563 回答