前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CDN系列学习文章(七)——DNS&HTTP劫持篇

CDN系列学习文章(七)——DNS&HTTP劫持篇

原创
作者头像
开元
发布2019-06-21 01:27:50
3.7K0
发布2019-06-21 01:27:50
举报
文章被收录于专栏:开元说说开元说说

当你打开网页或者APP时,发现有些内容与当前业务几乎没有什么联系,而且这些内容有明显的营销或广告意图,这种场景大概率是劫持现象了。

1.为什么要劫持?

所谓劫持,顾名思义,正常通道被拦截。这里通道就是用户请求和响应的消息通道,劫持并不是阻塞消息通道,而是非法指向一些不合理节点或者返回一些不合理响应。

为什么会有劫持呢?归根到底利益驱动。一方面涉及到运营商之间网间结算的问题,这部分费用对小运营商来讲很昂贵,因此为了节省成本,小运营商会对某些域名流量进行劫持。另一方面做广告或者有针对性的引导,很多是劫持者为了插入广告而获利才做的劫持。

2.如何定义劫持?

劫持种类有很多,在CDN业务内常见有DNS劫持(域名劫持)和HTTP劫持(内容劫持)。

DNS劫持(域名劫持)

这类劫持就是DNS解析到的IP节点并非是该业务CDN覆盖节点IP,运营商为了节约省间或者运营商网间结算费用,将大流量域名内容缓存在自己节点,当用户发起DNS解析,直接解析到自己缓存节点。这类劫持现象是访问的资源可能不是最新的,有滞后性。该类劫持,CDN业务客户反馈,一般通过第三方(博睿&听云服务商)进行验证识别。

HTTP劫持(内容劫持)

  • 302劫持。用户正常的请求能够请求到CDN节点,但是正常请求返回200OK,通信链路修改HTTP响应头为302,并插入location字段,导致用户强制跳转到非法节点响应。流程如下:
302劫持流程
302劫持流程
  • 内容劫持。用户正常的请求能够请求到CDN节点,但是正常请求返回200OK,经过http请求被标示,并通过旁路设备改写HTTP响应内容(例如HTML插入iframe),抢先回包策略,响应给用户。
HTTP响应劫持
HTTP响应劫持

3.如何预防劫持?

针对CDN场景下的劫持,根据数据链路有以下几种方案

  • 针对DNS劫持。由于LDNS解析是不可控的,这边建议业务使用HTTPDNS,然后DNS请求,来规避DNS劫持。各家云厂家都有成熟的HTTPDNS的SDK&API调用模式。详见https://cloud.tencent.com/document/product/379
  • 针对HTTP劫持。全站业务使用HTTPS方案,注意这里指的是全站,并不是其中一个业务域名
  • CDN防劫持方案。1)全链路HTTPS 2)对内容的MD5验证 3)回源直接IP回源,减少回源链路DNS劫持。4)中间链路私有协议SDN传输。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.为什么要劫持?
  • 2.如何定义劫持?
  • 3.如何预防劫持?
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档