平时访问网页的时候,默认都是访问的 http 协议,比如 http://how2j.cn. 即便在地址栏没有明确写 http, 只写了一个 how2j.cn, 实际上浏览器也会自动补充上 http:// 的。
http 就是协议的名称。 协议是什么概念呢? 就是浏览器和服务端事先约定好的规则,按照预定的规则,服务器和浏览器之间能够互相理解。
http 协议的缺陷,这里主要谈安全方面的缺陷。 http 协议是明文传输的,无论数据,账号,密码都是在网络上明文传输的,所以就存在巨大的安全隐患。一个是容易泄露密码,再一个容易被劫持。
前段时间 how2j.cn 就被劫持了,效果就是访问 http://how2j.cn 的时候,会跳转到不可描述的网站去。 接下来就讲解一下劫持是如何发生的。
how2j 的数据是放在阿里云上的, 如果用户要获取 how2j 的数据,是不会直接从 服务器上去取的。 会先找运营商,然后运营商去把数据取出来,取出来之后,再发给用户。
如图所示,这是3个主要的运营商,他们就扮演者中介的角色。
一般说来,这个中介什么都不会做,把从阿里云拿到的数据,返回给用户就完了。
但是,如果有黑客,或者运营商内部不可描述的原因,拿到的数据被动了手脚,那么再发给用户的数据,就不是原来的数据了。
how2j 被劫持,就是本应该返回正常的 html, 但是却被粗暴地修改成了: 用户感受就是访问之后,直接跳转到其他页面去了。
因为 http 是明文传输的,所以很容易就被纂改, 于是就出现了被劫持的现象。
为了解决这个问题,我们需要在 http 协议上做一个增强,这个增强方式就是 进行 ssl 认证。 认证完成之后, http 协议就变成了 https协议啦。
https 协议从理论上来讲也会和 http 一样会被纂改,但是其难度和代价就是指数级别的上升了,所以从概率上来讲,再出现被劫持的现象就小了很多很多啦