本文介绍了在浏览器里什么是混合内容,为什么要禁用混合内容,以及在各种浏览器里面如何启用混合内容。
什么是混合内容
HTTP 是一种从网页服务器将信息传递到您的浏览器的系统。HTTP 并不是安全的,所以当您访问一个通过 HTTP 提供的页面时,您的连接正面临窃听和中间人攻击的风险。大多数网站都使用 HTTP 提供服务,因为它们不涉及敏感信息的传输,因而无需采取加密措施。
当您访问一个完全通过 HTTPS 提供的页面时(例如银行服务),您将看到地址栏中有绿色挂锁图标(详见站点标识按钮)。这表示您的连接经过身份验证和加密,从而防止窃听和中间人攻击。
但是,如果您访问的 HTTPS 页面中含有 HTTP 内容,即使页面主体内容以 HTTPS 提供,HTTP 的部分仍然可被攻击者读取和篡改。当某个 HTTPS 页面含有 HTTP 内容时,我们称它为“混合内容(Mixed Content)”。这种页面仅被部分加密,尽管有些人认为这样是安全的,但事实并非如此。
为啥要禁用混合内容
上面其实已经讲到了。由于混合内容中 HTTP 的部分会对安全造成威胁,所以各大浏览器厂商都会禁用混合内容。
比如,你有一个 HTTPS 的应用,恰巧应用里面调用了一个第三方的 HTTP 接口,那么,默认情况下,对这个 HTTP 接口的请求,是会被浏览器拒绝的,告警如下(Chrome 浏览器):
Mixed Content: The page at 'https://59.255.134.5/gov/' was loaded over HTTPS, but requested an insecure script 'http://59.255.134.3:28080/js/maps.js'. This request has been blocked; the content must be served over HTTPS.
如何在浏览器里面启用混合内容
上面的例子,如果第三方接口没有提供 HTTPS 服务,但你又想调用这个接口,那么你可以设置你的浏览器,来启用混合内容。
Google Chrome
方法1:
右上角盾牌,点击“加载不安全的脚本”。
缺点:每次重启浏览器,都需要重新点击设置,比较繁琐。
方法2:
Chrome 桌面快捷方式上右击,“属性”,在“目标”路径的后面添加 --allow-running-insecure-content
参数。打开浏览器后就会自动启动混合模式。
效果:
IE
方法1:
浏览器对有风险的脚本进行了拦截,点击“显示所有内容”。
缺点:每次重启浏览器,都需要重新点击,比较繁琐。
方法2:
对 IE 进行设置,启动显示混合内容。
Firefox
方法1:
在地址栏单击盾牌图标 ,并在下拉菜单中单击“选项”按钮,在弹出的菜单中选择“暂时解除保护”。
缺点:每次重启浏览器,都需要重新点击设置,比较繁琐。
方法2:
在浏览器输入 about:config 切换到设置页面。
设置 security.mixed_content.block_active_content
选项值为 false
参考引用