什么是HTTPS混合内容

我们可能会有这样的经验,当我们通过HTTPS访问一个网站的时候,突然有提示:“本页面包含有不安全的内容”。这个时候会询问是否显示“不安全的内容”,这个时候,就是遇到了有混合内容的页面了。
HTTPS下的页面,几乎很少是采用单一连接,HTML标识、图片、JS脚本以及其他页面资源不仅是多个连接获取到,甚至可能是来自完全不同的服务器和网站。为了确保一个页面进行了正确的加密,所有的页面资源都通过HTTPS进去获取是必要的。但在实际情况中,全部资源都采用HTTPS却不常见,这就倒是了混合内容(mixed content)安全问题的产生。
产生混合内容的原因
程序员某些程序员仍然基于HTTP下的编程习惯,导致代码的不严谨。最常见的就是采用绝对路径的方式,访问网站上的资源,在HTTP的模式下这种方式可能都是正确的,但一旦这些页面要求改用HTTPS,这些元素就很可能是被通过HTTP调用,而产生错误。
Mashup
随着Mashup的发展,网站不再是自己提供全部内容,它们混合其他网站的内容,而内容的来源则被隐去。Mashup虽然对开发者来说非常有用,但也让我们的HTTPS变得不可捉摸。
Mashup主要通过在页面加载第三方的JavaScript代码来实现的,在HTTPS加密的上下文中,经常会出现第三方的内容和服务不支持HTTPS加密,前几年,百度和Goolge的很多服务业也都不支持HTTPS,最近2、3年,才开始支持全网SSL,但有些小的服务商依然不能做到全部支持HTTPS。
CDN
CDN在全球建立大量的服务器,可以通过对用户访问IP地址的判断,选择最优的网络访问位置,为用户提供大量的(主要是静态)数据文件。通常CDN要支持用户通过HTTPS访问内容的成本比较高,因为CDN通常使用BDNS的域名解析技术,这会对一个网站在全球的各个不同的分发站点分配不同的主机名,所以我们经常必须采用Wildcard通配符证书,甚至Wildcard San证书来支持,同时因为SNI的兼容性还不够完善,每个分发点最好都具体自己独立的IP地址,这也导致运维的复杂性和成本的提高。
混合内容的影响混合内容的影响主要与没有被加密的内容性质所决定,目前主要有两种性质的内容:
混合被动内容(Mixed passive content),混合主动内容(Mixed active conttent)。前者也叫混合显示(Mixed Display),它们是低风险的内容,例如图片; 后者也叫作混合脚本(Mixed Scripting),它们是高风险的内容,常见的有JavaScript脚本。
混合主动内容是威胁的真正来源。一个不被加密的JavaScript文件的引用,可能会被主动攻击者劫持,并用来获取对页面的完全控制,已经使用受害者的身份在网站上执行任意的动作。对于其他危险的资源类型也是如此,包括:HTML(框架)、CSS、FLASH和JAVA应用程序等。
混合被动内容虽然不是那么的危险,但依然会破坏页面的完整性。在某些情况下,攻击者可以通过在图片中插入信息来玩弄受害者,可能导致钓鱼攻击的发生。
浏览器的处理
Android浏览器
Android的浏览器对混合内容没有任何限制。
Chrome
Chrome从版本38开始,会阻止所有的混合主动内容。
Firefox
Firefox很久以前就可以对混合内容进行检测并发出警告,但一直到版本23以后,开始对所有的混合主动内容进行阻断。
IE
IE从IE5(1999年)开始就支持对混合内容的检测,当IE检测到同一个页面上存在加密和明文内容的时候,它将提示用户来决定如何处理。但一直到IE9以后,才开始对混合主动内容进行阻断,同时开始对混合的被动内容采取了默许的方式。
Safri
Safri目前不阻断任何混合内容,这是它与其他浏览器相比的一个很大的区别。
Images |
CSS |
Scripts |
XHR |
Websockets |
Frames | |
| Android Brower 4.4 |
Y | Y |
Y |
Y |
Y |
Y |
| Chrome 41 | Y | N |
N |
N |
N |
N |
| Firefox 30 |
Y | N |
N |
N |
N |
N |
| IE 11 | Y | N |
N |
N |
N |
N |
| Safari |
Y |
Y |
Y |
Y |
Y |
Y |
查找混合内容
查找网页是否存在混合内容,推荐使用Chrome的“开发者工具”:
访问需要测试网页,然后打开,开发者工具,选择“Security”-"Non-Secure Origin",就可以看到Mixed Content:
解决办法
检查代码
新的网站开发,在搭建测试环境时,建议直接在测试环境部署HTTPS,以确保网站在测试时就能及时发现混合内容问题,并及时纠正。
程序员在代码开发时,可以采用以下方式:
本地的图片和脚本通过HTTP显示方式直接调用。可以检索所有通过http://绝对路径方式调用的元素,改用本地相对路径。访问了一些外网的图片和脚本。譬如某网站www.domain.com,将图片放在另外一个站点img.domain.com,将脚本访问js.domain.com上,请在每个站点都部署HTTPS,然后将原先的http://的引用方式调整为//的引用方式。例如:原先的代码 <img src="http://img.domain.com/image/1.jpg" /> 修改为 <img src="//img.domain.com/image/1.jpg" /> 。调整后,浏览器会自动选择http还是https来访问外网资源。如需要使用第三方系统提供的应用服务,请寻求支持HTTPS的服务商,目前百度和Google都已经支持全网HTTPS,而且正规的应用服务上,都会开始支持HTTPS了。HTST
HTST是一种强制浏览器获取安全资源的机制,即使在面对用户错误(譬如用户用80端口访问到你的网站)以及实现错误(网站开发人员在HTTPS页面上加了不安全的元素)也依然有效。这个特性有效的消除了混合内容的问题,但仅能在你能控制的域名下工作。
HTST要求通过301跳转的方式,一下仅就IIS简要介绍一下:
首先在网站上配置1个HTTP的网站,和一个HTTPS的网站,选择HTTP重定向:
状态代码设置为:永久(301)。重定向到相同域名的HTTPS站点上。
有关HTST的详细使用,我们将另外发文介绍。
CSP
为了阻断从第三方网站获取到的不安全资源,可以使用安全内容策略(Content Security Policy,CSP)。这个安全特性可以对不安全的资源进行阻断。它同时还有很多其他有用的特性来处理应用层安全问题。
# HTTPS混合内容
# 深入解析nodejs HTTP服务
# 激动人心的 Angular HttpClient的源码解析
# Android M(6.x)使用OkHttp包解析和发送JSON请求的教程
# C#如何解析http报文
# Android天气预报之基于HttpGet对象解析天气数据的方法
# 解析ajax核心XMLHTTPRequest对象的创建与浏览器的兼容问题
# 各类Http请求状态(status)及其含义详细解析
# 详解http访问解析流程原理
# 第三方
# 不安全
# 可以通过
# 这个时候
# 不支持
# 发点
# 都是
# 重定向
# 这是
# 是一种
# 会有
# 放在
# 在全球
# 本页
# 让我们
# 多个
# 不可捉摸
# 没有任何
# 但在
# 推荐使用
相关文章:
建站之星如何实现PC+手机+微信网站五合一建站?
如何选择美橙互联多站合一建站方案?
微信小程序 五星评分(包括半颗星评分)实例代码
在线制作视频网站免费,都有哪些好的动漫网站?
魔方云NAT建站如何实现端口转发?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
建站之星如何修改网站生成路径?
盐城做公司网站,江苏电子版退休证办理流程?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
建站OpenVZ教程与优化策略:配置指南与性能提升
如何快速搭建FTP站点实现文件共享?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
建站之星安装模板失败:服务器环境不兼容?
如何在西部数码注册域名并快速搭建网站?
建站主机选哪家性价比最高?
制作门户网站的参考文献在哪,小说网站怎么建立?
公众号网站制作网页,微信公众号怎么制作?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
浅谈Javascript中的Label语句
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
青岛网站建设如何选择本地服务器?
如何在新浪SAE免费搭建个人博客?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
建站主机与虚拟主机有何区别?如何选择最优方案?
建站DNS解析失败?如何正确配置域名服务器?
黑客如何通过漏洞一步步攻陷网站服务器?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
如何在阿里云虚拟服务器快速搭建网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
南平网站制作公司,2025年南平市事业单位报名时间?
如何基于云服务器快速搭建个人网站?
建站之星官网登录失败?如何快速解决?
三星网站视频制作教程下载,三星w23网页如何全屏?
相册网站制作软件,图片上的网址怎么复制?
文字头像制作网站推荐软件,醒图能自动配文字吗?
高端网站建设与定制开发一站式解决方案 中企动力
如何构建满足综合性能需求的优质建站方案?
公司网站制作价格怎么算,公司办个官网需要多少钱?
小程序网站制作需要准备什么资料,如何制作小程序?
已有域名和空间如何快速搭建网站?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何通过IIS搭建网站并配置访问权限?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
活动邀请函制作网站有哪些,活动邀请函文案?
如何用PHP快速搭建高效网站?分步指南
C#怎么使用委托和事件 C# delegate与event编程方法
*请认真填写需求信息,我们会在24小时内与您取得联系。