HTTP劫持解决方法 HTTP劫持与DNS劫持的区别举例
HTTP 劫持解决方法
对付HTTP劫持,最好的方法之一,就是使用HTTPS来连接网页。而使用HTTPS,在传输数据过程中,数据是加密的。就如同原先开车被人在车窗塞小广告,现在把窗都关紧,他人自然再也无法插足。
HTTPS不仅可以防止HTTP劫持,也能够较好地防止DNS劫持,这是由于HTTPS的安全是由SSL来保证的,需要正确的证书,连接才会成立。如果DNS把域名解析到了不对应的IP,是无法通过证书认证的,连接会被终止。
实际上,现在已经有越来越多的网站支持HTTPS,但为了兼容等问题,不少网站也同时提供HTTP连接,例如著名的视频网站哔哩哔哩。主动使用HTTPS来进行连接,不但有效防止网页劫持,还能够保护隐私。
HTTP 劫持的实现原理
一般来说 HTTP劫持主要通过下面几个步骤来做:
1、标识HTTP连接。在天上飞的很多连接中,有许多种协议,第一步做的就是在TCP连接中,找出应用层采用了HTTP协议的连接,进行标识。
2、篡改HTTP响应体,可以通过网关来获取数据包进行内容的篡改。
3、抢先回包,将篡改后的数据包抢先正常站点返回的数据包先到达用户侧,这样后面正常的数据包在到达之后会被直接丢弃。
与 DNS 劫持的区别举例
DNS劫持的现象:你输入的网址是http://www.google.com,出来的是百度的页面;
HTTP劫持的现象:你打开的是知乎的页面,右下角弹出唐老师的不孕不育广告。
DNS劫持就是你想去存钱运营商却把你拉到了劫匪手中;
而HTTP劫持就是你从服务器买了一包零食电信给你放了一坨屎,横竖都很恶心人。
DNS劫持是你想去医院的时候,把你给丢到火车站;
HTTP劫持是你去医院的时候,有人半途上车给你塞小广告。
DNS劫持:在DNS服务器中,将www.xxx.com的域名对应的IP地址进行了变化。你解析出来的域名对应的IP,在劫持前后不一样;
HTTP劫持:你DNS解析的域名的IP地址不变。在和网站交互过程中的劫持了你的请求。在网站发给你信息前就给你返回了请求。
HTTP劫持(HTTP hijacking)是一种网络安全威胁,它发生在HTTP通信中,攻击者试图窃取或篡改用户与服务器之间的数据流量。通常,攻击者通过各种方式拦截HTTP请求或响应,以获取敏感信息或执行恶意操作。
具体内容如下:
HTTP劫持(HTTP hijacking)是一种严重的网络安全威胁,它侵犯了HTTP通信的隐私和完整性。攻击者会试图在用户与服务器之间的数据流中窃取或篡改信息。
以下是一些常见的HTTP劫持情景和相应的对策:
1. 代理服务器劫持
攻击者可能设立恶意的代理服务器,对用户的HTTP请求和响应进行拦截和篡改。
对策:使用HTTPS协议进行加密通信,降低代理服务器劫持的风险。另外,需确保浏览器或应用程序没有自动配置代理,防止被恶意代理绑架。
2. 会话劫持
攻击者通过窃取用户的会话标识符(如Cookie),冒充用户与服务器进行交互,进而访问用户账户、个人信息等,甚至假借用户名义发送请求。
对策:对于Cookie设置“HttpOnly”和“Secure”属性,提高会话安全性。另外,定期更改密码、使用双因素身份验证等措施也能降低会话劫持的风险。
3. DNS劫持
攻击者通过篡改DNS记录,将用户请求重定向至恶意服务器,从而截获或篡改用户与目标网站之间的通信。
对策:使用可信任的DNS解析服务,确保DNS记录的安全性,并定期检查DNS记录是否被篡改。
4. 恶意浏览器插件或软件
这些可能修改浏览器的行为,例如将用户的搜索流量重定向到恶意站点。
对策:定期审查和更新浏览器插件,确保只安装来自可信任来源的插件。使用反恶意软件工具来扫描和清除计算机上的恶意软件。
如果怀疑HTTP通信已被劫持,应立即采取行动以减轻风险,这可能包括更改密码、清除浏览器缓存和Cookie、更新浏览器和应用程序、使用VPN等。此外,及时通知网站或服务提供商报告此类问题,并寻求专业的安全支持来分析和解决问题。预防HTTP劫持的关键在于保持网络的安全性和对用户数据的良好保护。
DNS劫持
大部分网站都需要用到CDN,使用CDN加速后,源站IP被隐藏,用户通过访问最近节点,浏览网站内容,以达到网站被加速的目的。这个过程其实也可以说是DNS劫持的过程。
与恶意DNS劫持不同的是,CDN服务商的目的是友好的,加速也经过网站管理员同意,我们经常说的DNS劫持,均指恶意的DNS劫持。
一般DNS解析流程是用户走localdns,通过运营商提供的递归DNS解析,通常的DNS劫持就发生在这一层。
当网站发生DNS劫持后,用户输入网址,不再跳转到原来的页面,而是被攻击者指向一个特定的页面。通俗的说,用户输出google.com后,回车打开的,却是百度搜索的页面,这就是DNS劫持的典型案例。
DNS劫持有三种后果:
域名被错误解析,网页跳转到纠错导航页,导航页被植入恶意广告。
错误域名解析到非正常页面。
直接被解析到攻击者指定的站点或广告页面。
DNS被劫持,用户无法正常浏览内容,甚至可能因此上当受骗,严重影响用户体验和网站业务的开展。
HTTP劫持
HTTP劫持相对于DNS劫持温和一些。在服务器与客户端进行数据传输时,攻击者伪装成服务器,响应客户端请求,从而抛弃真正服务器的数据传输。
当网站遭受HTTP劫持时,同样会造成一些后果:
出现3xx重定向跳转;
JS内容被篡改;
html内容被篡改;
这样一来,目标网站会出现弹窗广告、页面广告等多种广告形式,或者网站的一些内容被黑客修改,用于达到某种目的。
怎么防止网站被劫持?
防止网站被劫持,有两种思路。
对客户端和服务器的数据传输进行加密
隐藏http请求的特征
对客户端和服务器的数据传输进行加密的终极解决办法,是安装ssl证书,将站点从http升级为https,因为https协议会对数据传输进行加密,攻击者也就无法拦截它们之间的数据传输,从而进行劫持了。
另外一种是对URL进行加密,对URL进行加密后,用户向CDN节点发起请求,C再由CDN节点进行解密,获取真实的URL链接并响应给用户。
以上就是两种劫持方式的简单介绍了。随着ssl证书的普及,对http和DNS进行劫持的案例越来越少,但因为攻击者技术也在不断革新,所以不能忽略它们对网站的影响,应当重视起来。