我的网站使用 PHP 编写,在 Apache 上运行。
我的一个用户在具有 2 个 IP 的 WAN 上,他的连接被其中任何一个 IP 路由到我们的服务器。
如果 PHP 检测到 IP 发生变化,它似乎会将用户注销。
它是一个开源应用程序,我认为一定使用了一些常见的流行文件。
有什么方法可以预防吗?
答案1
我认为 apache 与此无关。问题最有可能出在 php 会话中,尽管我认为 php 默认不会检查客户端 ip。你确定你的代码中没有检查会话 ip 的内容吗?
答案2
这不是 PHP,也不是 Apache——它是您所使用的任何 FOSS 包的安全“选项”。PHP 会话没有固有的安全性。
如果乔使用 IP 192.168.0.1 登录到你的网站,他可能会获得一个会话令牌ABC123。 如果简然后前往她的工作站,手动创建包含会话 ID 的 cookieABC123然后去http://您的网站,她会表现得好像乔到您的系统。当用户使用代理服务器时(例如,来自阿联酋的用户通过一系列 3 个区域路由器路由出去),这一点至关重要,因为代理服务器可能会发生变化 - AOL 就是另一个例子。
应该有一个配置选项来关闭此安全功能。