mixed content 混合内容

什么是混合内容?

当用户访问使用HTTPS的页面时,他们与web服务器之间的连接是使用SSL加密的,从而保护连接不受嗅探器和中间人攻击。

如果HTTPS页面包括由普通明文HTTP连接加密的内容,那么连接只是被部分加密:非加密的内容可以被嗅探者入侵,并且可以被中间人攻击者修改,因此连接不再受到保护。当一个网页出现这种情况时,它被称为混合内容页面。

浏览器 Web 控制台

当你的网站上的网页出现这种问题时,Web控制台将会显示混合内容警告消息。通过HTTP加载的混合内容资源将会用红色字体显示,同时用“混合内容”标明哪些资源将要链接到这个页面。

Screen shot of the web console displaying a mixed content warning.

要修复这个错误,则应删除由HTTP请求的内容,而由HTTPS代替它。一些常见的混合内容的例子包括JavaScript文件、样式表、图像、视频和其他媒体。

从Firefox 23开始,混合活动内容是被默认阻塞的(并且混合显示内容可以在偏好设置里被阻塞)。为了让web开发人员更容易找到混合内容错误,所有被阻塞的混合内容请求都被记录到了web控制台的安全窗格。

防止混合内容被阻塞的解决方法 (firefox有效)

浏览器端,使用about:config,打开属性面板,设置属性security.mixed_content.block_active_content为False即可。
浏览器 mixed content 设置
注意: 不可能要求每个用户都去修改浏览器设置,所以我们在引用资源的时候,特别是一些共用资源,对其协议要心中有数

参考资料
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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请求等,以保证网页的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值