2017-02-20 46 views
0

我有一个HTTPS网站,从HTTP RSS源中加载内容。当试图与此消息加载图片时,Chrome/Firefox的块他们:混合内容:Chrome阻止<img>在我的网站,但不是

 
Mixed Content: The page at 'mysite.com/index.php' was loaded over HTTPS, but requested an insecure image 'http://www.example.com/2017021411050.jpg'. This request has been blocked; **the content must be served over HTTPS**. 

不过,如果我加载Feeldy相同的饲料,我可以看到,尽管资讯提供ly的网站也通过HTTPS加载的所有图像。在资讯提供ly情况下,浏览器显示只是一个警告:

 
The page at 'https://feedly.com/i/subscription/feed/http://www.example.com/rss.php' was loaded over HTTPS, but requested an insecure image 'http://www.example.com/2017021411050.jpg'. **This content should also be served over HTTPS**. 

为什么资讯提供ly可以绕过混合内容块和越来越只是一个警告,而我'得到一个块?

回答

-1

解析RSS提要时,您也正在检索图像URL。

可以说图像的网址是http://externalsite.com/someimage.jpg

您将此URL改写为https://example.com/image?url=http://externalsite.com/someimage.jpg&hash=1234567

现在,浏览器总是通过https发出请求,并且您摆脱了这些问题。

+0

感谢您的答案,但没有问这个问题。问题是关于Feedly的技术绕过MC块。 Feedly似乎不像图像的代理。 – AitorF

+0

@AitorF因此,图像的src是http://,并且在使用HTTPS加载时不会给出任何混合内容错误? –

+0

对!在Feedly中,但在我的情况下,我得到一个很大的红色错误。 – AitorF

0

Firefox和Chrome都是安全浏览器,但我不确定Feedly究竟是什么。 Firefox和chrome阻止它们是因为他们认为在HTTP网站中加载HTTP图像并不安全,但Feedly不在乎,所以他认为只是发出警告就足够了。 但我知道一个解决方案来解决这个 例如,你得到这个URL

http://otherdomain.com/image.jpg 

这是一个HTTP,那么你改变它像

https://example.com/imageserver?url= //here put your image url 

这一招将使得浏览器认为你是在装通过以下HTTPS网址上的图像

https://example.com/imageserver?url=http://otherdomain.com/image.jpg&hash=abcdeafad 
+0

我知道MC和浏览器是如何工作的,但关键是为什么Feedly(一个在线RSS阅读器,像我这样的Web应用程序)能够获得HTTP图像只是一个衰退,而对于相同的图像我得到一个块。他们用什么技术绕过阻塞? – AitorF

+0

这是字面上的复制粘贴我的答案lmao –

+0

oh melvin Koopmans我是新来的这个stackoverflow,我想我们同时发布相同的答案,因为在我回答这个问题时没有其他答案所以我对重复的答案表示歉意 –