大家好,我是zzz(贼x3)。
HTTPS取代HTTP已经成为一股潮流。
那么如果一个网站仍然使用HTTP,会有哪些危害?下面本贼用亲身经历来说明一下,顺便吐槽一下电信。
首先访问qq.com
。
您看到了什么?右下方“辉煌甲子,追梦百年”的广告,明显排版有问题,看上去不像QQ网站上的广告。于是,我查看了该页面的HTML元素:
忽见里面有个<iframe>
,这不正常!
原来,网页遭到了篡改,好端端的QQ网页被全体包装进了<iframe>
里,广告在外层。这个方法非常巧妙,既植入了广告,又让人以为这是腾讯自己的广告,极少有人发现并投诉。而且不是每次都发生,可能是10%-20%的概率,即使叫电信的师傅来看,也看不出什么问题。本贼几年前就发现了这个现象,投诉后,客服大惊,说“闻所未闻”,然而到现在也仍然没有解决。(当然,也可能冤枉了电信,因为在HTTP下,网络任何一个环节都可以窃听并篡改数据。在上海这样的城市也会发生这种事情,可想而知在其他城市这有多么普遍。)
但广告还是轻微的。严重的是,如果网站的登录页面也是采用HTTP,那么你的密码将可能泄露(这已经不在网站和你本人的掌控之中)。遗憾的是,国内大多数中小网站的登录页面仍然是采用HTTP。
篡改的原理是,在如下网络基础设施中:
路由器 -> 路由器
在中间插入一个恶意的路由器:
路由器 -> 恶意路由器 -> 路由器
如果是外部人员所为,那可以挖地三尺,剪断光缆,连接恶意路由器。如果是内部人员所为,那根本不用破坏,更简单。
因为路由器的作用只是“把数据忠实地转发到下一个路由器”,所以恶意路由器只需把数据作下修改,使其输出和输入不一样即可。
不过,如果网站支持HTTPS,且以HTTPS访问,那么窃听和篡改将变为不可能。
所以,我们作为用户访问网站时,如果网站支持,要使用HTTPS访问,以保护自己;我们作为程序员设计网站时,必须支持HTTPS,而且最好把HTTP请求重定向到HTTPS,以对用户负责。