开发笔记📐 发现👽 人物👮 趣闻💦
知己知彼百战不殆:伪造IP的原理 谨防流量诈骗

知己知彼百战不殆:伪造IP的原理 谨防流量诈骗
2018-06-20 10:49:30   点击:

伪造IP的原理1:TCP

要明白伪装IP的原理,首先要回顾一下TCP的三次握手。在建立连接的阶段,需要三次握手来建立连接,之后客户端和服务端会依据初始的这个IP地址来通信。看到这里就知道,想真正的伪装一个IP地址,几乎不可能。 因为即使第一次发送syn包的时候,从链路层修改IP地址,服务器的返回包也无法抵达。除非只是为了欺骗服务器或者让他宕机,否则毫无意义。所以此路不通。

伪造IP的原理2:X-Forwarded-For

X-Forwarded-For : 简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。

它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。

标准格式如下:X-Forwarded-For: client1, proxy1, proxy2。

通常一个 XFF字段会像下面这样:

X-Forwarded-For: 127.0.0.1, IP2, ..., IP N

从左到右,依次记录的是距离服务器距离远的代理服务器的IP。 

该字段用于转发代理和反向代理。

不过,有些服务端不关心这个请求的原始地址,而只关心最后那个转发给他的 IP N的代理。

 

伪造IP的原理3:实现

首先用 postman 模拟一个 HTTP 请求,看看返回的字段里携带的客户端信息是怎样的。

然后我们再人为的添加上 XFF 字段,看看 device信息变成了什么。

现在已经变成了一个假的位置。而且即使这个IP地址明显错误,服务端也没用校验这个异常。

 

伪造IP的原理4:总结

时下流量和业务市场很多以IP为准,做后端的朋友们如果知道这个BUG,可能就能防止更多有心人的利用。技术无罪,应对恶意使用技术的人,最直接的方法就是知己知彼。

 

本文为转载【原文】后补充了部分内容。

流量 原理 伪造

上一篇:前端多浏览器环境下的兼容性:常见CSS HACK介绍
下一篇:Laravel数据库指定时间区间查询 按天按小时查询数据