什么是 HTTP 劫持?与 DNS 劫持的区别是什么?

本文详细解释了HTTP劫持的概念及其实现原理,并对比了其与DNS劫持的区别。此外,文章还介绍了如何通过HTTPS等手段有效防御HTTP劫持。

DNS 劫持与污染在上文中已经有过较为详细的讨论,这里再说说 HTTP 劫持(也叫网页劫持吧),以及与 DNS 劫持的区别。其实两者的区别是非常明显的,十分易于辨别。DNS劫持会整个跳转网页不同,HTTP 劫持往往只是在页面上添加一个小窗,但这小窗并不属于网页本身的广告,有时候无论你访问什么网页,这小窗都不会消失,甚是烦人。
  大家平时上网的时候应该遇到过,就是在不管打开什么网页,下方角落里有时候会出现一些小广告,有时候这些广告,不是访问的站点为了盈利而投放的广告,而是第三方的运营商提供的,这就是 HTTP 劫持。
HTTP 劫持的原理就是在服务器和用户之间的信息传输之中添油加醋,这是由于信息没有被加密而造成的。用户请求了网站服务器,服务器返还网页给用户,在传输过程中就给了他人加料的机会。就算DNS服务器可靠,也无法防止HTTP劫持。
HTTP 劫持的实现原理
  一般来说 HTTP劫持主要通过下面几个步骤来做:
标识HTTP连接。在天上飞的很多连接中,有许多种协议,第一步做的就是在TCP连接中,找出应用层采用了HTTP协议的连接,进行标识;
篡改HTTP响应体,可以通过网关来获取数据包进行内容的篡改;
抢先回包,将篡改后的数据包抢先正常站点返回的数据包先到达用户侧,这样后面正常的数据包在到达之后会被直接丢弃。
与 DNS 劫持的区别举例
DNS劫持的现象:你输入的网址是http://www.google.com,出来的是百度的页面;
HTTP劫持的现象:你打开的是知乎的页面,右下角弹出唐老师的不孕不育广告(2018年更:右下角弹出:偶系渣渣辉)。
DNS劫持就是你想去存钱运营商却把你拉到了劫匪手中;
而HTTP劫持就是你从服务器买了一包零食电信给你放了一坨屎,横竖都很恶心人。
DNS劫持是你想去医院的时候,把你给丢到火车站;
HTTP劫持是你去医院的时候,有人半途上车给你塞小广告。
DNS劫持:在DNS服务器中,将www.xxx.com的域名对应的IP地址进行了变化。你解析出来的域名对应的IP,在劫持前后不一样;
HTTP劫持:你DNS解析的域名的IP地址不变。在和网站交互过程中的劫持了你的请求。在网站发给你信息前就给你返回了请求。
HTTP 劫持解决方法
  对付HTTP劫持,最好的方法之一,就是使用HTTPS来连接网页。而使用HTTPS,在传输数据过程中,数据是加密的。就如同原先开车被人在车窗塞小广告,现在把窗都关紧,他人自然再也无法插足。
  HTTPS不仅可以防止HTTP劫持,也能够较好地防止DNS劫持,这是由于HTTPS的安全是由SSL来保证的,需要正确的证书,连接才会成立。如果DNS把域名解析到了不对应的IP,是无法通过证书认证的,连接会被终止。实际上,现在已经有越来越多的网站支持HTTPS,但为了兼容等问题,不少网站也同时提供HTTP连接,例如著名的视频网站哔哩哔哩。主动使用HTTPS来进行连接,不但有效防止网页劫持,还能够保护隐私。
  此外,还可以向运营商客服打电话申诉,要求他们撤除,不行的话向国家工信部投诉。

### 3.1 DNS 的定义作用 DNS(Domain Name System,域名解析系统)是一种互联网服务,其主要功能是将用户便于记忆的域名转换为对应的 IP 地址,从而实现对网络资源的访问[^4]。由于 IP 地址难以记忆且不直观,DNS 提供了一种人性化的命名机制,使用户可以通过有意义的域名快速定位服务器。 DNS 不仅用于浏览器访问网站,还广泛应用于基于域名的服务重定向、内部名字服务器搭建以及负载均衡等场景。例如,通过修改 DNS 记录,可以灵活地将域名指向不同的 IP 地址,实现服务迁移或高可用性架构[^3]。 ### 3.2 域名解析的基本流程 域名解析过程通常涉及多个步骤。当用户在浏览器中输入一个域名时,操作系统会首先检查本地 DNS 缓存中是否存在该域名对应的 IP 地址记录;如果缓存中没有,则会向配置的 DNS 服务器发起查询请求。若本地 DNS 服务器无法解析该域名,则会递归地向上级 DNS 服务器查询,直到找到能够提供正确 IP 地址的权威 DNS 服务器为止[^1]。 在整个解析过程中,可能会涉及到多种类型的 DNS 记录,如 A 记录(将域名映射到 IPv4 地址)、CNAME 记录(将域名别名指向另一个域名)、MX 记录(用于邮件路由)等。这些记录共同构成了域名解析的基础结构[^2]。 ### 3.3 常见的 DNS 解析类型及其用途 - **A记录**:最基础也是最常见的 DNS 记录类型,用于将域名直接解析为 IPv4 地址。 - **CNAME记录**:用于将某个域名的访问转发到另一个域名,适用于多个子域名共享同一主机的情况。 - **MX记录**:指定接收电子邮件的邮件服务器地址,对于企业邮箱设置至关重要。 - **泛域名解析**:使用通配符“*”来匹配所有未明确设定的子域名,统一指向特定 IP 或域名,防止因拼写错误导致访问失败。 - **智能解析**:根据访问者地理位置或运营商信息动态返回最优 IP 地址,以提升用户体验并实现负载均衡。 - **NS记录**:指明负责解析某域名的 DNS 服务器列表,有助于管理子域授权和分布式解析体系。 ### 3.4 域名解析中的常见问题及解决方法 在实际应用中,域名解析可能遇到诸如解析失败、延迟、错误等问题。这些问题通常由 DNS 服务器不可达、配置不当、记录过期或缓存污染等原因引起。解决办法包括但不限于更换 DNS 服务器、刷新本地 DNS 缓存、更新 DNS 记录以及联系注册商协助处理安全事件如域名劫持等[^2]。 此外,在开发调试期间,有时需要手动清除 DNS 缓存以确保获取最新的解析结果。Windows 系统下可通过命令行执行 `ipconfig /flushdns` 来完成此操作,Linux 用户则可使用 `systemd-resolve --flush-caches` 或重启 nscd 服务实现相同目的。 ```bash # Windows 下清空 DNS 缓存 ipconfig /flushdns # Linux (使用 systemd) 清空 DNS 缓存 sudo systemd-resolve --flush-caches ``` ### 3.5 域名解析的高级应用场景 除了基本的域名到 IP 映射外,DNS 还支持更复杂的用例,比如基于 DNS 的负载均衡策略。一种做法是在 DNS 回答中包含多个 IP 地址,客户端随机选择其中之一进行连接;另一种则是由 DNS 服务器根据预设规则主动分配流量至不同后端节点,以此达到优化性能和提高容错能力的目的。 此同时,随着云计算的发展,越来越多的企业开始采用云 DNS 服务来托管其域名解析需求。这类服务不仅提供了更高的稳定性和扩展性,而且集成了自动故障转移、健康检查等功能,进一步增强了系统的健壮性和运维效率。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值