由于图像,HTTPS连接“不安全”


14

我目前正在网站上工作,并且已经成功安装了SSL证书。

GeoTrust SSL / TLS检查器确认证书链(包括CA)已正确安装。在Chrome上一切正常,但我的挂锁不是绿色的,而在Firefox上,它实际上指出该网站是不安全的,因为该网站上存在未加密的元素。

我使用了在线服务来检查原因,结果发现我的图像确实不被视为安全URL。如何处理这种情况,又如何将图片安全地嵌入到我的网站中?

Answers:


32

您的图片标签当前必须看起来像:

<img src="http://example.com/images/image.jpg">

http在那里意味着图像不是安全投放。攻击者可能会更改传输中的图像,从而更改用户原本安全的页面的外观。

相反,您可以使用以下任一方法安全地提供图像:

  • https明确链接到:<img src="https://example.com/images/image.jpg">
  • 使用相对链接到您自己域上的图像: <img src="/images/image.jpg">
  • 使用协议相对链接来使用来自其他域的图像: <img src="//example.com/images/image.jpg">

显式https将始终安全地提供图像(即使页面未安全提供),而相对链接仅在页面得到安全提供时才安全地提供图像。

在Firefox和chrome中,您可以单击挂锁并获取有关该问题的更多信息。这样做之后,这是Firefox的屏幕截图,显示了页面中所有图像的列表。扫描列表并查看哪些是很容易的http


2
“攻击者可能会更改传输中的图像,从而改变您的安全页面对用户的外观。” -甚至触发渲染器中的漏洞。
约翰·德沃夏克

2
和劫持cookie,其中可能包括访问令牌。
Darkhogg

听起来非常像建议这样做。多亏了您,我设法获得了绿色的挂锁,但是一位朋友说加密图像可能会使页面变慢。就我而言,这是一个问题吗?
mti_

3
加密当然会有一些开销,但是如今通常不超过10%。性能损失(甚至是图片损失)是您必须为安全站点付出的代价。
Stephen Ostermiller

whynopadlock.com是一种方便的工具,可用于快速查明特定URL上的不安全资源。
Ville 2015年

5

问题是您的网页正在提供来自http位置而不是https的链接。这是由于使用绝对http链接来引用资源(例如图像)。有两种更好的方法使您可以引用http或https中的链接,从而避免出现此问题。

它要求您找到这些链接并将它们更改为:

  1. 相对链接:即。/wp-content/yourtheme/images/image1.jpg
  2. 或//放置在域的最前面,如中所述。//example.com/wp-content/wp-content/yourtheme/images/image1.jpg 然后将根据发出的请求通过http或https服务这些资源。

在Chrome和Firefox中,您都可以单击挂锁图标,然后单击以查看有问题的不安全链接的列表。而且,如果您看不到浏览器中突出显示的任何图像或其他资源,但仍然出现错误,则可能会发现有一个JavaScript调用完全通过http引用了链接


2
//一开始是非标准的,Lynx等浏览器会抱怨。
mirabilos 2015年

2
@mirabilos RFC 1808是URL的标准,并//在2.4.3节中指定了协议相对链接(以开头)。该标准
已有

#mirabilos检查建议的Google存储库链接。您会发现Google多年来一直在使用它们。
garth 2015年

1

这真的很基础。当您构建通过SSL(https)提供服务的网站时,代码中任何未带https开头的引用都将引发安全警告 -除链接之外。请注意,大多数(所有)浏览器还默认使用http的相对链接。因此,如果您引用/uploads/12/5/img.jpg或/js/jquery.js,则传输协议默认为http-这真令人讨厌。

所有浏览器对警告的处理都略有不同,但是您会收到一些消息。一般的说法是,新浏览器的消息越严重。一些较旧的浏览器实际上会忽略这些错误,而较新的浏览器可能会因为缺少“ s”而像您的世界一样受到攻击。


10
“大多数(所有)浏览器还默认指向http的相对链接”错误,什么?如果没有明确指定新的浏览器,则除非破坏了浏览器,否则绝对所有浏览器都将使用当前协议。
Oleg V. Volkov

5
奥列格是对的。那不是“烦人”:这是完全错误的。
与莫妮卡(Monica)进行轻度比赛

3
这是完全错误的。忽略此答案。
martijnve 2015年

@martijnve-我的答案错了吗?
Blankip

4
@blankip参见oleg V.Volkovs的评论。任何包含http的引用都是错误的。所有其他都很好。(协议相对,域相对,路径相对)。无论如何,您几乎都应该使用相对链接。
martijnve 2015年

1

如果在启用网页上的SSL后无法显示图像时,这些建议均无济于事,请检查cPanel的“热链接”设置是否位于cPanel的“安全性”部分下。在此设置中,您很有可能具有以下特点:http://example.com和并且http://www.example.com被启用以允许https在未启用图像版本的情况下访问图像。


-4

在cms / wordpress / magento或您使用的任何其他平台中检查安全的URL协议配置。您也可以共享一些图像标签,但是基本的img src图像不会出现此类错误。

图像标签结构很重要,但是我想重点关注您的问题,它与您网站上安装的SSL证书“类型”有关。我遇到了一个带有“标准GoDaddy SSL证书”的个人案例。

您会在Firefox(特别是)网址搜索栏中看到一个警告图标,表示您的网站上可能存在不安全的图像或元素。据我所知,这仅仅是Firefox如何处理有关证书的信息或其中包含的信息的问题。Safari,Chrome或其他浏览器中不会发生这种情况。我找到了解决方案,安装了具有有关站点公司的更多详细信息的“高级SSL证书或EVC 扩展验证证书 ”,而不是“标准SSL” 。您会看到一个绿色的挂锁安全网址栏。

但是,高级ssl证书价格可能会更高一些,大约每年$ 150- $ 200 USD。

在此处输入图片说明


5
这是不正确的,因为:1)如果您输入HTTP网址(与HTTPS网址相对),<img src =“ ...”>标记确实确实会出现这种错误,并且2)证书类型或处理的方式与此绝对无关
fNek

无论是否使用ssl协议,我都使用img src全局媒体标签(例如{{media url =“ path / to / image.jpg”}}),但不会出现任何错误。顺便说一句,我指向显示的斯蒂芬的Firefox ssl错误。问候。
Gaio RoOts 2015年

3
如果您使用相对URL,则不会出现问题,因为它们是相对URL。请阅读其他答案。我知道您指的是斯蒂芬的错误。证书类型仍然与它无关。
fNek

证书的类型对所谓的“混合内容警告”没有影响。而且,这些天所有现代浏览器都会显示警告,有些很清楚,有些则只是拒绝显示“锁定”图标。
马丁·海姆斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.