浅析DNS劫持和HTTP劫持

我是英俊潇洒,技术过硬的网盾运维攻城狮龟哥。

今天来跟大家聊一聊网络劫持,劫持主要分类两大类:DNS劫持和HTTP劫持。而HTTP劫持最常见的就是3XX跳转劫持,JS劫持以及HTML劫持。

众所周知,CDN的全称是Content Delivery Network,即内容分发网络,主要是提高网站的速度,可以优化网站的访问速度,提高网站的安全性和稳定性。

什么你只知道CDN能加速?那么CDN本身是一种DNS劫持你知道吗?不过放心,它是良性的,不同于黑客强制DNS把域名解析到自己的钓鱼IP上,CDN是让DNS主动配合,把域名解析到临近的服务器上。

同时服务器开启HTTP代理,让用户感觉不到CDN的存在。而且CDN劫持不像海王那样不挑食,劫持用户所有流量。CDN比较专一只“劫持”用户的静态资源访问,对于之前用户访问过的资源,CDN将直接从本地缓存里反馈给用户,因此速度有了很大的提升。

DNS劫持

正常DNS解析的流程是用户走localdns,通过运营商提供的递归DNS进行域名解析。而DNS劫持一般发生在LDNS(递归dns)这一层。

DNS劫持有这三种情况:

1.错误域名解析到纠错导航页面,导航页面存在广告;

2.错误域名解析到非正常页面 ;

3.直接将特点站点解析到恶意或者广告页面 。

HTTP劫持

HTTP劫持是指在传输过程中,劫持方伪装成目的服务器抢先给出了响应,使得客户端接受了劫持的响应而抛弃了正确的响应,就是先下手为强,后下手遭殃。甚至有时候劫持方会完全拦截用户的请求,目的服务器没有接受到任何请求。

在HTTP劫持中,3XX跳转,JS内容篡改以及html内容篡改都可能会发生。目前看3XX跳转和JS内容篡改比较常见。

劫持方想要达成的目的是默默的赚钱,因此这就决定了劫持方不可能猖獗到劫持整个域名的http请求。一般是通过过滤识别http请求的特征码来判断是否要进行劫持。

那么我们有两种防劫持思路

1.采用https协议加密请求。

2.隐藏http请求的特征,例如使用对称加密算法加密整个url。

https可以说是防止劫持的终极思路,但是https多了ssl握手的过程,会耗费一定的时间和性能,必须要考虑到时间影响和CDN节点的性能影响。另外https一般分为两种,一种是传统https(合用证书),一种是https sni。

目前的主流是https sni,但选用的时候必须确认好具体的业务需求,因为市面上还残留着一些老旧版本的浏览器。

URL加密也是经常用来防止劫持的做法。市面上的各大手机应用商店都采用了这种做法。相较于https,url加密的兼容性更好,并且对CDN节点带来的解密额外负担可以忽略,但是url加密需要CDN节点的密切配合。

通常是选中一种对称加密算法,调用加密后的url。用户向CDN节点发起请求,CDN节点会解密url,获取真实的url并且响应给用户。

由于劫持方一般通过对url进行匹配决定是否进行劫持,因此这种url加密的方式也可以很好的防止劫持。

通俗的来讲,DNS劫持就是你想去存钱运营商却把你拉到了劫匪手中;而HTTP劫持就是你从服务器买了一份饭电信给你放了一坨屎。

过以上的内容,相信机智的网友们已经知道了什么是DNS劫持和HTTP劫持以及应对方法,如果还有什么疑问欢迎来撩龟哥~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值