基于用户名和密码的登录验证是针对我已完成的php应用程序完成的。
我也希望实现IP地址验证。(用户无法同时从两个不同的IP地址登录)
我想知道,这在生产环境中是否可靠?因为有人说代理地址只能由PHP服务器获取。是这样吗?
答案 0 :(得分:1)
需要考虑以下几点:
您的系统的不同合法用户可能会从其ISP共享IP,这种类型的设置称为NAT。来自同一合法用户的单独请求最终可能会在同一会话期间通过不同的IP地址进入,这种情况更为罕见但却会发生。你提到的代理也是一种真正的可能性。
在实现这样的功能之前,请务必仔细考虑它。
答案 1 :(得分:0)
您将获得带有$ _SERVER ['REMOTE_ADDR']
的IP地址我必须更长时间地考虑正确的解决方案,但也许你可以对会话做些什么(以及它的名字)
http://www.php.net/manual/de/function.session-name.php
也许我们也需要数据库。也许我明天会再回复,现在是早上6点:)
答案 2 :(得分:0)
代理的事情是真的。每次请求通过代理时,IP都会发生变化。最后,您可能拥有请愿书所通过的最后一个代理人的IP。
答案 3 :(得分:0)
如果您需要实施IP地址验证,您应该保留允许访问系统的列表IP,并检查客户端IP。
如果您担心代理服务器,请检查HTTP_X_FORWARDED_SERVER,HTTP_X_FORWARDED_FOR等标头,以识别源IP地址。我不确定这是否适用于socks代理服务器。