Web 从数据包中检索的远程IP地址的准确性

Web 从数据包中检索的远程IP地址的准确性,web,http-headers,ip,packet,Web,Http Headers,Ip,Packet,如果可以从我的Apache2服务器接收到的数据包中检索远程IP(可能是通过自定义插件),那么它是否总能保证准确?或者这个值和referer头一样容易伪造 我的预期用途是限制未经验证的API调用。这是不可靠的。不仅因为它可以被欺骗,还因为网络元素可以使服务器看到不同的IP地址 例如,在公司中,通过代理访问互联网是非常典型的。根据配置的不同,从服务器的角度来看,所有不同的用户都来自相同的IP地址 在任何情况下,都可以在许多场景中使用过滤器。例如,当检测到来自同一IP地址的登录请求过多时,显示验证码。

如果可以从我的Apache2服务器接收到的数据包中检索远程IP(可能是通过自定义插件),那么它是否总能保证准确?或者这个值和referer头一样容易伪造


我的预期用途是限制未经验证的API调用。

这是不可靠的。不仅因为它可以被欺骗,还因为网络元素可以使服务器看到不同的IP地址

例如,在公司中,通过代理访问互联网是非常典型的。根据配置的不同,从服务器的角度来看,所有不同的用户都来自相同的IP地址


在任何情况下,都可以在许多场景中使用过滤器。例如,当检测到来自同一IP地址的登录请求过多时,显示验证码。

这是不可靠的。不仅因为它可以被欺骗,还因为网络元素可以使服务器看到不同的IP地址

例如,在公司中,通过代理访问互联网是非常典型的。根据配置的不同,从服务器的角度来看,所有不同的用户都来自相同的IP地址


在任何情况下,都可以在许多场景中使用过滤器。例如,当您检测到来自同一IP地址的登录请求过多时,请显示验证码。

如果是TCP数据包,则验证码对于发送主机来说是准确的。TCP数据包中的IP不能被欺骗,除非你已经控制了所涉及的路由器。对于伪造的源数据包,只有初始SYN数据包会返回,然后来自服务器的SYN+ACK响应将发送到伪造地址,而不是来自伪造地址的任何地方-例如,除非您可以从目标机器控制数据包路由,否则您无法进行完整的三方握手

另一方面,UDP数据包可以被轻易伪造,您不能信任它们的任何内容


同样,即使是像代理服务器和NAT网关这样简单的东西也可以掩盖数据包来源的“真实”ip。您将获得一个IP,但它将是网关/代理的IP,而不是原始计算机的IP。

如果它是TCP数据包,那么它将准确地表示发送主机。TCP数据包中的IP不能被欺骗,除非你已经控制了所涉及的路由器。对于伪造的源数据包,只有初始SYN数据包会返回,然后来自服务器的SYN+ACK响应将发送到伪造地址,而不是来自伪造地址的任何地方-例如,除非您可以从目标机器控制数据包路由,否则您无法进行完整的三方握手

另一方面,UDP数据包可以被轻易伪造,您不能信任它们的任何内容


同样,即使是像代理服务器和NAT网关这样简单的东西也可以掩盖数据包来源的“真实”ip。你会得到一个IP,但它将是网关/代理的IP,而不是原来的机器。

< P>如果你的意图是限制无效的API调用,你可能想考虑使用类似的服务。他们列出了可能是机器人和探测器的IP。还有其他公司和名单。但是如果你的意图是永远识别“坏家伙”,那么源IP就不太可能是正确的。

< P>如果你的意图是限制无效的API调用,你可能想考虑使用类似的服务。他们列出了可能是机器人和探测器的IP。还有其他公司和名单。但是如果你的目的是识别“坏人”,那么源IP就不太可能是正确的