代码之家  ›  专栏  ›  技术社区  ›  robjmills

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

  •  13
  • robjmills  · 技术社区  · 14 年前

    有人知道使用它是否有问题吗 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 功能。

    2 回复  |  直到 11 年前
        1
  •  14
  •   Community CDub    8 年前

    找到了一个有趣的gotcha,用于使用协议相关的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
  •  3
  •   Arnout    14 年前

    IE 7和IE 8将 download stylesheets twice 如果您使用的是协议相关的URL。这不会影响你,如果你只使用它“为一个图像源”,但以防万一。