是否存在通过HTTPS优先使用协议相对URL的情况?

时间:2016-02-20 22:20:37

标签: google-analytics disqus anti-patterns protocol-relative

Protocal-relative URL

Protocol-relative URLs是以//开头的网址,而不是http://https://。用于加载资源的实际协议是从包含页面派生的;因此,HTTPS页面中的//example.com/smile.jpeg将加载https://example.com/smile.jpeg

反模式声明

It has been widely claimed应该完全放弃使用HTTPS的协议相对URL;我最近的拉取请求之一被拒绝了(并且最终仅通过HTTPS接受)。

问题

网上许多声誉良好的服务仍然使用协议相对URL。例如,Google Analytics会调用//www.google-analytics.com/analytics.js和Disqus calls //EXAMPLE.disqus.com/embed.js

Web服务是否仍然使用不安全的协议相对URL而不是HTTPS?

2 个答案:

答案 0 :(得分:2)

因为可能根本没有通过HTTP调用服务?看一下IANA-registered URI schemes的列表。通过使用协议相对URL,它允许任何允许相同语法的方案加载页面。

协议相对URL还允许在服务器配置中控制方案,而不是页面生成代码或页面模板。如果使用协议相对URL,则可以将Web服务器配置为强制将任何普通http:请求强制重定向到页面模板中的https:等效和拼写错误,否则代码不会意外使用http: (或者,如果他们这样做,很容易扫描代码和模板文件,并找到所有出现的问题)。

答案 1 :(得分:1)

如果资产可通过https获得,则没有理由使用协议相对URL。指定https本身比保持开放性更安全,这为不安全的http注入提供了机会。表现不是原因(参考:https://istlsfastyet.com/)。

您提到的这些服务只会转换为仅使用https的协议,这只是时间问题:为了整合单个协议/网址并仅提供安全交付的资产,这符合他们的最佳利益。