安全页面上的iframe中的不安全内容
我正在为客户端开发一个应用程序,这个客户端将有一个SSL证书,并在https下提供服务。 但是,要与他们现有的网站进行整合,他们希望在iframe中提供他们的导航。
我可以看到这造成麻烦,因为我希望浏览器抱怨页面上的安全和不安全的内容混合。 我已经在这里看过类似的问题,他们似乎都相反(iframe中的安全内容)。
那么我想知道的是:它会引起问题,将不安全的内容包含在iframe中,放在安全的页面上,如果是的话,会是什么样的问题?
理想情况下,如果这不是一个好主意(我有强烈的感觉,这不是一个好主意),我需要能够向客户解释这一点。
如果使用https://www.example.com/main/index.jsp
)访问您的页面,则如果HTML代码中有任何资源,则您的浏览器将会抱怨“此页面包含安全和不安全的项目”用http://
(非SSL)引用。 这包括iframe。
如果您的导航页面托pipe在同一台服务器上,那么您可以通过使用像这样的相对URL来防止“不安全的内容”消息…
<iframe src="/app/navigation.jsp" />
从你的问题,这听起来像你的导航页面是从一个单独的主机提供,你被迫使用这样的东西
<iframe src="http://otherserver.example.com/app/navigation.jsp" />
这当然会导致浏览器中的“不安全的内容”消息。
你唯一的解决办法是要么
-
在持有导航页面的服务器上实现SSL,以便您可以使用
https://
作为您的iframe引用或 -
将导航应用程序移动到相同的服务器,以便您可以使用相对URL。
就我个人而言,我不明白为什么你的导航将在不同的主机上,因为那样你就会得到JavaScript跨域脚本问题(除非涉及一些时髦的JSONP)。
如果你的页面是http,那么它允许带有https内容的iframe。
但是,如果你的网页是https,那么它不允许http内容。
让我们放下以下的可能性。
page - iframe - status http - http - allowed http - https - allowed https- http - not allowed https- https - allowed
尝试删除src属性值中的http:字符,如下所示:
<iframe src="//example.com/thefile.htm"></iframe>
这当然是一个解决方法,安全是重要的,所以不要轻易绕过,但无论如何,这曾经让我经历了类似的问题。