来自同一台机器的GET和POST请求可以来自不同的IP吗?

Noo*_*z42 4 ip http-get http-post

我很确定我记得读过 - 但是找不到链接了 - 关于这个:在一些ISP(包括美国至少一个大型ISP)上,有可能让用户的GET和POST请求出现来自不同的IP.

(请注意,这完全与编程有关,我将在下面举例说明)

不是说你的IP地址在两个请求之间动态变化.

我在说这个:

IP 1:  123.45.67.89
IP 2:  101.22.33.44
Run Code Online (Sandbox Code Playgroud)

相同的用户发出GET,那么一个帖子,然后再得到,然后再次发布和服务器看到这一点:

- GET  from IP 1
- POST from IP 2
- GET  from IP 1
- POST from IP 2
Run Code Online (Sandbox Code Playgroud)

因此,尽管它是同一个用户,但Web服务器会看到GET和POST的不同IP.

肯定看到HTTP是无状态协议,这是完全合法的吗?

我想找回关于某些ISP如何/为什么配置其网络以便可能发生这种情况的解释.

我问,因为有人要求我实施以下IP过滤器,我很确定它是从根本上破坏了代码(破坏了至少一个主要的美国ISP用户的破坏).

这是一个Java servlet过滤器,可以防止某些攻击.原因是:

" 对于任何会话过滤器检查请求中的IP地址是否与创建会话时使用的相同.因此,在这种情况下,会话ID不能被盗用于形成虚假会话."

http://www.servletsuite.com/servlets/protectsessionsflt.htm

但是我很确定这本身就是破坏的,因为有些ISP可能会看到来自不同IP的GET和POST.

Mar*_*Eve 5

一些ISP(或大学网络)运行透明代理,这些代理从处于最小网络负载的传出节点中继请求.

也可以在本地计算机上配置它以使用具有最低负载的NIC,这可能再次导致这种情况.

您是正确的,这是HTTP的有效状态,虽然它应该相对不频繁发生,但这就是为什么基于IP的用户验证不是一个适当的身份确定.