通过使用图像源的协议相对URL来防止安全/不安全的错误

时间:2010-11-29 12:21:39

标签: html image http https protocol-relative

是否有人知道将protocol relative URLs用于图像源以防止混合内容安全警告是否有问题。

例如,链接图像,如:

<img src="//domain.com/img.jpg" />

而不是:

<img src="http://domain.com/img.jpg" />
or
<img src="https//domain.com/img.jpg" />

在我的测试中,我没有看到任何暗示这是错误的,但我不确定它是否会产生问题。

编辑我发现在使用PHP的getimagesize函数时会抛出错误。

3 个答案:

答案 0 :(得分:14)

找到了使用协议相对URL的一个有趣的问题:

  

你必须小心谨慎才能使用   目的地的页面中的这种语法   浏览器。如果你把它放在电子邮件中,   将不会使用基页URL   在解析相对URL。在   至少Outlook,这个URL将是   解释为Windows网络文件,   不是你想要的。

来自here

基本上虽然没有正当理由,但只要请求是由浏览器而不是外部电子邮件客户端进行,这就不起作用。

来自here的更多信息:

  

没有方案的相对URL(http:   或RTps :)有效,按RTF 3986:   第4.2节。如果客户端呛到它,   那是客户的错,因为   他们没有遵守URI   RFC中指定的语法。

     

您的示例有效且应该有效。   我已经使用了相对URL方法   我自己在交通繁忙的网站上   没有投诉。我们也是   在Firefox,Safari中测试我们的网站   IE6,IE7和Opera。这些浏览器全部   了解URL格式

答案 1 :(得分:3)

如果您使用的是协议相对URL,则IE 7和IE 8将download stylesheets twice。如果您仅将它用于“图像源”,那么这不会影响您,但以防万一。

答案 2 :(得分:0)

在使用协议相对URL时应考虑以下几点:

1)所有现代浏览器都支持此功能。

2)我们必须确保可以通过HTTP和HTTPS访问请求的资源。如果HTTP重定向到HTTPS很好,但是在这里,加载时间将比直接向HTTPS发出请求的时间长一点。

3)Internet Explorer 6不支持此功能。

4)Internet Explorer 7和8支持该功能,但是如果将相对于协议的URL用于CSS文件,它们将下载两次样式表。