X-Forwarded-For IP、X-Real-IP、VPN 和 TOR 之间的区别

信息安全 虚拟专用网 代理人 铬合金 ip欺骗
2021-08-15 18:27:28

我有这个正在开发的 Google Chrome隐私保护扩展我可以在哪里欺骗标头信息,例如用户代理等。

当我欺骗X-Forwarded-For IP并访问http://whatsmyuseragent.com/时,我看到了不同的 IP 和我的物理位置。而如果我去http://whatismyipaddress.com/location-feedback我会看到我的实际 IP 和物理位置。

如果我从 TOR/VPN 访问同一个站点,我会看到完全不同的位置和 IP。这意味着 TOR/VPN 隐藏了我的真实身份。我知道代理收到我的请求并代表它转发它们,为什么X-Forwarded-For IP不做同样的事情?我的意思是欺骗X-Forwarded-For IP的意义何在,尽管我已经更改了很多次,但它只是告诉了原始 IP?

3个回答

X-Forwarded-For标头可用于在源 NAT 的情况下转发客户端的真实 IP。但并非所有应用程序都使用它们。

当应用程序需要知道属于客户端的真实 IP 时,此标头通常由负载平衡器或反向代理插入,具体取决于现有架构。

插入此标头后,应用程序可以看到 2 个 IP:

  • TCP/IP 连接中使用的源 IP
  • X-Forwarded-For标头中设置的 IP

设置此标头不会隐藏您的真实 IP(因为它仍在 TCP/IP 连接中使用),但可以欺骗使用它的应用程序。但是,正如您所见,并非所有应用程序都在使用它。

对于 TOR 和 VPN,这是 TCP/IP 连接中使用的 IP,由(分别)您的出口节点/您的 VPN 网关修改。但是,它们不会(也不应该)在应用层运行,它们不会(也不应该能够)插入X-Forwarded-For HTTP 标头,因此您的真实 IP 是隐藏的。

额外的标头(通常可以通过使用 X- 作为前缀的弃用约定来识别)只是一个约定。并且任何有权访问客户端和服务器之间的明文连接的人都可以编辑。

因此,X-Forwarded-for(或“Via”或其他一些变体)的存在并不是真实 IP 的可靠指标。没有这样的报头并不是直接连接的指示。OTOH,您可能会对 HTTPS 请求中此类标头的存在赋予一些意义。

如果您试图抢劫一家银行,而银行在存在 X-Forwarded-For 标头的情况下忽略了客户地址,那么他们为您提供了一种非常简单的方法来掩盖您的踪迹。

欺骗出现在 TCP/IP 数据包中的“发件人”地址是可能的,尽管非常困难因此,通常可以将其视为准确的端点(但实际客户端可能位于不同的地址,使用此设备作为 NAT 路由器/代理)。

我知道 [tor] 代理收到我的请求并代表它转发它们,为什么 X-Forwarded-For IP 不做同样的事情?

首先,X-Forwarded-For 是您请求中的一些文本,而 tor 是网络基础设施和相关协议。其次,添加标头的上下文是当通过代理发送连接时,该代理将重新组装数据包流,然后可以对请求执行许多操作,其中可能包括将请求发送到源主机。

这些标头由反向代理设置,以让代理后面的 Web 服务器知道发出请求的原始 IP 地址是什么。

更改它们不会隐藏您的 IP 地址。正确配置的反向代理只会覆盖该值。

(反向代理基本上是外部世界和另一个 Web 服务器/应用程序之间的 Web 服务器。)