正在浏览网页时忽然出现广告弹窗,手动关闭窗口的话,则会跳转到另一个不知名的网站。
如果出现上述情况,说明你的网站流量被劫持了。
流量劫持,是利用各种恶意软件 、木马修改浏览器 、锁定主页或不停弹出新窗口等方式,强制用户访问某些网站,从而造成用户流量损失的情形,和DNS劫持不同,网站流量劫持是在你的网站页面上添加弹出广告等内容,但这些内容并不属于网页本身的广告,有时候无论你访问什么网页,这些广告都不会消失。
因为网站使用HTTP明文传输,攻击者可以在服务器和用户之间的信息传输中“加料”或者篡改。这是由于信息没有加密造成的,就算DNS服务器可靠,也无法防止HTTP劫持。
流量劫持可以说是一种恶意行为,会对用户带来流量损失。引起流量劫持的原因很多,但是防止流量劫持也不是很难的事情。
能够实施流量劫持的根本原因,是HTTP协议没有办法对通信对方的身份进行校验以及对数据完整性进行校验。如果能解决这个问题,则流量劫持将无法轻易发生。
SSL协议.NETscape在1995年首次提出的用于解决传输层安全问题的网络协议,其核心是基于公钥密码学理论实现了对服务器身份认证、数据的私密性保护以及对数据完整性的校验等功能。
SSL协议在HTTP请求开始之前增加了握手的阶段,在SSL握手阶段,客户端浏览器会认证服务器的身份,这是通过“证书”来实现的,证书由证书权威(CA)为某个域名签发,可以理解为网站的身份证件,客户端需要对这个证件进行认证,需要确定该证书是否属于目标网站并确认证书本身是否有效。最后在握手阶段,通信的双方还会协商出一个用于加密和解密的会话密钥。
SSL防护结束之后,服务器和客户端使用协商出的会话密钥对交互的数据进行加密/解密操作,对于HTTP协议来说,就是将HTTP请求和应答经过加密之后再发送到网络上。由此可见,因为SSL协议提供了对服务器的身份认证,所以DNS劫持导致连接错误服务器的情况将会被发现进而终止连接,最终导致DNS挟持攻击无法实现。此外SSL协议还提供数据的加密和完整性校验,这就解决了关键信息被嗅探以及数据内容被修改的可能。
综上所述,使用SSL证书是可以有效防止流量劫持的。