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

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

我使用了在线服务来检查为什么这是和事实证明,我的图片确实不属于安全网址。
如何处理这种情况,也就是如何将图片安全地嵌入到我的网站中?

#1 楼

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

<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



评论


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

– John Dvorak
2015年12月17日在7:05

劫持cookie,其中可能包含访问令牌。

– Darkhogg
15年12月17日在12:56

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

– mti_
2015年12月17日14:26

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

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
2015年12月17日14:27



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

–维尔
15年12月17日在19:13

#2 楼

问题是您的页面正在提供来自http位置而不是https的链接。这是由于使用绝对http链接来引用图像等资源。有两种更好的方法使您可以引用http或https中的链接并避免此问题。


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



相对链接:即。 /wp-content/yourtheme/images/image1.jpg


或//放在域的最前面,如//example.com/wp-content/wp-content/yourtheme/images/image1.jpg
然后,将基于
发出请求,通过http或https服务这些资源。




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

评论


//开头是nōn标准,并且Lynx之类的浏览器会抱怨。

– mirabilos
2015年12月17日14:42

@mirabilos RFC 1808是URL的标准,并在2.4.3节中指定了协议相对链接(以//开头)。该标准已有15年的历史了,并由包括Lynx在内的所有主要浏览器实施

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
2015年12月17日19:20



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

– Garth
15年12月18日在2:08

#3 楼

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

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

评论


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

–奥列格·沃尔科夫(Oleg V. Volkov)
15年12月17日在10:28

奥列格是对的。那不是“烦人”:这是完全错误的。

–轨道轻赛
2015年12月17日在12:06

这是完全错误的。忽略此答案。

–martijnve
15年12月17日在13:05

@martijnve-我的答案错了吗?

–blankip
2015年12月17日在14:57

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

–martijnve
2015年12月17日15:13



#4 楼

如果启用网页上的SSL后无法显示图像,这些建议都不能解决问题,请检查cPanel的“热链接”设置,该设置位于cPanel的“安全性”部分下。在此设置中,很有可能您具有以下内容:http://example.comhttp://www.example.com已启用,以允许访问图像,而https版本未启用。

#5 楼

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

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

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

高级ssl证书可能是稍微贵一点,每年约$ 150- $ 200美元。



评论


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

–fNek
15年12月16日在19:48

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

–Fercho
15年12月16日在20:16

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

–fNek
15/12/16在20:42

证书的类型对所谓的“混合内容警告”没有影响。而且,这些天所有现代浏览器都会显示警告,有些很清楚,有些则只是拒绝显示“锁定”图标。

–马丁·海默斯(Martijn Heemels)
2015年12月17日下午16:06