【发布时间】:2011-08-15 15:49:42
【问题描述】:
我有一个网站,只有几个人可以访问它,所以登录的 IP 数量非常有限。登录的“管理员”提交的所有内容都将发送到取决于其 IP 地址的特定文件夹。同样,他们无法通过代理或任何方式访问该网站,因为允许的 IP 范围有限。
我可以信任 $_SERVER['REMOTE_ADDR'] 提供有效的 IP,以便日志系统 100 % 稳定和高效吗?
【问题讨论】:
-
如果可能的话,我认为你不能在不伪造 TCP 数据包的情况下伪造 REMOTE_ADDR。与
$_SERVER中的很多东西不同,REMOTE_ADDR 不是取自 HTTP 请求标头(HTTP 请求标头很容易伪造) -
您可以伪造 TCP 数据包,但不能伪造带有欺骗 IP 的完整 TCP 连接握手序列,初始 SYN 数据包除外。来自服务器的 SYN+ACK 响应将发送到欺骗 IP 的系统,该系统不知道该数据包为何进来并忽略它。
-
@Marc 我不确定技术解释,但我已经看到这样做了。我在管理屏幕上有一个 IP 块。我们的一个技术团队发现了我的 IP(我在家工作)并通过伪造他的 IP 地址绕过它。
-
@Blowski:如果您可以控制路由器,则可以欺骗 IP 地址,但这仅适用于您控制的网络。
-
@Marc 但是,即使他负责网络,他如何完成三种方式的连接握手?服务器的响应永远不会到达他的网络,因为 ip 是假的。所以,我还是觉得不可能