Mixed Content混合内容错误 Iframe Http页面无法访问

问题描述

今天在做一个https站点的时候,需要用iframe打开一个http页面。但发现在手机上和chrome上就是无法打开,显示Mixed Content(混合内容)。因为https协议站点,读取的资源文件js css png,包括请求post和get,还有iframe的页面,都必须是https协议的。所以就会报出下面的错误,其实是浏览器为了HTTPS网站不会受到不安全的HTTP资源的攻击的出现错误。其他浏览器下会有个提示用户点击确认就可以访问了。但chrome和手机浏览器上就不会,白屏一个,资源,请求,iframe都直接block掉。

下面是chrome报错的内容:

Mixed Content: The page at ’ was loaded over HTTPS, but requested an insecure resource ‘http://test.webpay.bluepay.tech/bluepay/index.php‘. This request has been blocked; the content must be served over HTTPS.

这里写图片描述

解决办法

提供有用的解决办法(最优1,其次2,向下排)
1.把iframe中的http升级成https。
2.https站点降级http,就能访问iframe http。
3.通过nigix做映射,页面写访问https,但nigix接收后转成http发送出去。

结论

别想什么其他解决办法,最好就都升级https,提升站点安全。用nigix这种方式只会增加站点对外网访问多一个服务,维护和排查问题起来。增加工作量,一步到位升级https才是明智选择。

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在JavaScript中,可以使用MixedContentChecker API来判断混合内容mixed content)。 所谓混合内容是指在使用HTTPS安全协议的网页上加载使用HTTP不安全协议的资源,例如图片、脚本或样式表等。这可能导致安全隐患,因为HTTP协议不具备加密传输数据的能力,可能被恶意攻击者拦截或篡改。 MixedContentChecker API提供的方法可以检测网页中是否存在混合内容。下面是一个简单的示例: ```javascript if (navigator.maxTouchPoints > 0) { navigator.permissions.query({ name: 'geolocation' }) .then(result => { if (result.state === 'granted' || result.state === 'prompt') { checkMixedContent(); } }); } else { checkMixedContent(); } function checkMixedContent() { if (document.images) { const images = document.images; for (let i = 0; i < images.length; i++) { if (images[i].src.startsWith('http://')) { console.warn('存在混合内容:', images[i].src); } } } // 同样的方法可以应用到其他资源,如脚本、样式表等 } ``` 以上代码首先通过navigator.permissions.query()方法获取用户位置权限,之后再调用checkMixedContent()方法检查混合内容。在检查时,可以遍历网页中所有的图片(也可以通过类似的方式检查其他资源),如果某个图片的src属性以http://开头,则可以判断为存在混合内容,并通过console.warn()方法打印出来。 通过使用MixedContentChecker API,开发人员可以轻松地判断混合内容,并采取相应的措施,例如修改资源链接为HTTPS,或者通过代理服务器将HTTP请求转换为HTTPS请求等,以保证网页的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值