2015-03-03 74 views
0

我们的产品包含网站集,主页包含3个加载这些不同网站的iframe。我们将在所有网站上启用SSL。我们允许html用户数据在我们的系统中显示。目前,由于以下原因我们遇到了混合内容问题,因此我们暂停此举。混合内容拦截解决方案

  • 用户数据中引用http内容的一些元素。 例如:img,js等
  • 一些加载在我们的iframe中的第三方。 (不同的内容提供商)

我们想到开发自己的网络代理,我们确实担心这个解决方案的性能以及昂贵。任何人都可以告诉我们可以购买哪些可用的混合内容问题解决方案和可用的第三方Web代理?

+2

这不是题外话,因为它要求的(在线)工具? – 2015-03-05 16:30:40

+0

@BramVanroy也就是说,如果提出的解决方案相当复杂,是否有任何实现该工具的框架/ – Eranga 2015-03-05 17:11:56

回答

2

最好的解决方案可能是从某些服务购买远程服务器(谷歌会给你数百万次点击),然后建立一个CGI脚本来将不安全的内容加载到远程服务器上,缓存它,然后服务该内容。这样,您的用户就可以免受第三方知晓他们的注意,并且如果您在这些服务器上设置了SSL证书,那么您可以轻松解决混合内容。

这就是说,当你开始从远程服务器加载你的用户内容时,会有一个很大的呃逆,因为它必须开始缓存所有内容。

1

使用Web代理不是理由如下一个很好的解决方案:

  • 我们有性能问题,这种解决方案的价格昂贵像你说的。
  • 此解决方案最大的问题是我们仍然存在安全漏洞。在网站上使用https的目的是为了防止网站遭到嗅探器和中间人攻击。如果您使用Web代理,则浏览器与代理之间的连接仍然很脆弱。
  • 我不确定Web代理是否能够帮助您,因为浏览器始终会将这些链接解释为http,即使您的服务器启用了SSL也是如此。

有关混合内容的更多信息:https://developer.mozilla.org/en-US/docs/Security/MixedContent

正确的方式来处理这种情况,你必须修改所有的链接加载使用HTTPS内容。或者更好的办法是使用protocol relative url

<script src="//scripts/main.js"></script> 
+0

谢谢。但问题是我们正在处理第三方内容,并且它在阻止之前已经运行。 – Eranga 2015-03-07 03:39:19

+0

@Eranga:如果是这样,你应该尝试使用https版本的第三方内容。如果没有https版本,我认为这个问题不能有效解决。貌似这个官方页面有同样的想法:https://developer.mozilla.org/en-US/docs/Security/MixedContent/How_to_fix_website_with_mixed_content – 2015-03-07 04:53:21

+0

一些第三方的没有HTTPS的支持。与他们谈判改变是不可行的。 – Eranga 2015-03-08 17:01:45

1

混合内容警告内置的浏览器设计,以表明他们的意思是什么。您可以在设置中将其关闭,或者只需单击确定,因此通过投掷混合内容,可能会降低UI,但不会降低功能。

有几件事情浮现在脑海中,因为供应商不能改变他们的内容:

  1. 写为您的应用后端刮板通过HTTPS擦伤本地网页和服务器的内容。

  2. 不要立即渲染内容,让用户点击它打开iframe,以便至少加载页面,并且可以警告用户(可选)。

  3. 提高或者通过第一检查HTTPS的解决方案,有很多的网站有80和443都打开,但正如你指出的,不是每个人。

  4. 不太熟悉这一个,但你可以甚至有Internet Explorer的服务器实例打开页面,并缓存他们为你简化刮。

如果我正在写这篇文章,我会尽可能检查https,并允许混合内容警告的设计。