【问题标题】:Preventing secure/insecure errors by using protocol relative URLs for image source通过对图像源使用协议相对 URL 来防止安全/不安全错误
【发布时间】:2011-05-17 06:15:36
【问题描述】:

是否有人知道将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 函数时会抛出错误。

【问题讨论】:

    标签: html image http https protocol-relative


    【解决方案1】:

    发现了一个使用协议相对 URL 的有趣陷阱:

    你必须小心只使用 页面中的此语法 浏览器。如果你把它放在电子邮件中, 将没有可使用的基本页面 URL 在解析相对 URL。在 至少在 Outlook 中,此 URL 将是 解释为 Windows 网络文件, 不是你想要的。

    来自here

    基本上,只要请求是由浏览器而不是外部电子邮件客户端发出的,就没有正当理由说明这不应该起作用。

    来自here的更多信息:

    没有方案的相对 URL (http: 或 https :) 有效,根据 RTF 3986: 第 4.2 节。如果客户对此感到窒息, 那么这是客户的错,因为 他们不符合 URI RFC 中指定的语法。

    您的示例是有效的,应该可以工作。 我使用了相对 URL 方法 我自己在流量很大的网站上 零投诉。还有,我们 在 Firefox、Safari、 IE6、IE7 和 Opera。这些浏览器都 了解该 URL 格式

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

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

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

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

        【讨论】:

          猜你喜欢
          • 2013-05-27
          • 2013-01-08
          • 2013-01-20
          • 1970-01-01
          • 2020-05-21
          • 2022-01-02
          • 2016-03-31
          • 2017-03-08
          • 1970-01-01
          相关资源
          最近更新 更多