我有一个https页面(https://example.com/main.php),其中包含一个非https源的iframe(http://example.com/inner.php).两个文件都在同一台服务器上 - 只有一个用https访问而另一个不是.我需要非https页面才能main.php
使用代码等在https 页面上执行javascriptparent.myfunction()
但是,当我尝试这个时,我收到以下错误:
不安全的JavaScript尝试使用网址http://example.com/inner.php从网址https://example.com/main.php访问框架.域,协议和端口必须匹配.
我已经设置document.domain = 'example.com'
了两个文件,我认为这将解决它,但是,它没有.有没有办法允许框架在父框架上执行javascripts,反之亦然?如果是这样,这有什么安全隐患?
PS:对于那些建议只对两个页面使用https或http的人,我正在调查.但是,由于iframe页面中发生的进程,由于服务器负载问题,这可能不是一个可行的选项.
"同源策略"包括协议("http"或"https"),主机名和端口号.所有这些必须匹配或你输了.
如果您的服务器负载真的会受到必须对页面应用加密的影响,那么我怀疑您还有其他更严重的问题.在这个时代,这真的不应成为一个问题.如果你有一个大流量的网站,那么你可能应该使用前端来进行SSL.
如果是以往任何时候都可以做到你所要求做什么,没有SSL保护的网站将永远是安全的.
让我来描述一下这个问题.假设用户Alice在Paypal.com上访问她的帐户.我,马洛里,我在Paypal和Alice之间.当Alice访问Paypal时,我拦截她的请求并返回一个包含两个内容的页面:一个框架与https://paypal.com,一个包含一个声称是' http://my.paypal.com ' 的页面,我精心打造自己.HTTPS框架验证正常,因为它实际上来自Paypal.HTTP框架包含我的设备的一些Javascript,它将进入HTTPS框架,当Alice输入她的密码时,它会发送给我!
所以不,从不安全的内容访问安全内容是不行的,即使在同一个域上也是如此.