HTTP 请求的 IP 地址可以被欺骗吗?

TND*_*TND 27 http ip spoofing

在我正在构建的网站上,我计划记录提交的 IP 地址,以防万一。我不介意代理,但完全欺骗您的 IP 地址会破坏目的。

要执行完整的 GET 操作,(无论您是否收到或是否通过)是否需要合法的 IP 地址?或者某个网站被随机伪造 IP 地址的帖子发送垃圾邮件?

(POST 有什么不同吗?)

wom*_*ble 32

不。嗯,是的。或者可能。这取决于您从何处获取“IP 地址”数据,以及您是否信任它们。

如果您从 IP 数据包本身获取地址,那么您可以相信发送数据包的人可以访问发送到该 IP 地址的数据包。这可能意味着它是该 IP 地址的合法用户(对于“合法”一词的适当限制值,在这个僵尸网络、开放代理和 Tor 的时代),或者发送数据包的人可以访问中间系统和可以看到您发送的数据包经过。

然而,随着反向代理的广泛流行,IP 数据包经常会误报连接的来源,因此引入了各种 HTTP 标头以允许代理提供“实际”源 IP 地址。这里的问题是您必须相信发送标头的人会提供准确的信息。此外,默认(或被误导的复制粘贴)配置很容易让您容易欺骗这些标题。因此,您必须确定您的请求中是否合法地涉及任何反向代理,并确保它们(和您的网络服务器)得到正确配置和保护。


Sha*_*den 24

不。

TCP 连接(HTTP 使用的)需要双向通信。虽然您可以SYN轻松欺骗数据包的源 IP ,但SYN-ACK来自服务器的响应将路由到您在初始数据包中欺骗的 IP - 除非您可以看到来自服务器的响应,否则您将无法完成连接。

但是,像 Tor 这样的匿名代理工具可以提供一种轻松匿名化连接源的方法 - 请记住,这可以通过 IP 禁止轻松击败垃圾邮件控制。


Mik*_*ike 12

简短的回答......不是今天你不能。

过去,计算机在 TCP 流量的序列号方面是非常可预测的。这意味着攻击者只会发送合法流量,直到它弄清楚序列号,并且可以很好地猜测接下来会发生什么。然后它会发送 TCP 流量来模拟一个欺骗性的 IP 地址,而另一端的主机就会相信。所以你可以伪造三向握手

今天,我想说 10 多年了……计算机在随机化方面要好得多,所以即使不是不可能,也很难做到。在我看来,攻击者这样做是浪费时间。


tec*_*b0y 8

HTTP 在 TCP 上运行。为了让 TCP 工作,您需要完整的 3 向 SYN/ACK 握手,然后才能发出 GET 或 POST 请求,因此简单的欺骗源不会做太多事情。其他更高级的欺骗形式 (MitM) 仍然有效。