Php 美元服务器[';远程地址';]安全吗?
我正在从事一个API项目,该项目部分依赖于$\u SERVER['REMOTE\u ADDR'](比如50%) 我的API首先检查客户端的IP,然后检查令牌,我想知道我是否应该担心从这个全局变量获取这个IP 客户可以怎样“伪造”这个吗Php 美元服务器[';远程地址';]安全吗?,php,api,http,ip,Php,Api,Http,Ip,我正在从事一个API项目,该项目部分依赖于$\u SERVER['REMOTE\u ADDR'](比如50%) 我的API首先检查客户端的IP,然后检查令牌,我想知道我是否应该担心从这个全局变量获取这个IP 客户可以怎样“伪造”这个吗 我知道VPN可以伪装IP,但这不是问题,因为他无论如何都不会访问。由于TCP/IP的三方握手-$\u服务器['REMOTE\u ADDR']不能被欺骗。但不能保证这是最终用户的IP地址。他可能支持代理或VPN。通过$\u SERVER['REMOTE\u ADDR
我知道VPN可以伪装IP,但这不是问题,因为他无论如何都不会访问。由于TCP/IP的三方握手-
$\u服务器['REMOTE\u ADDR']
不能被欺骗。但不能保证这是最终用户的IP地址。他可能支持代理或VPN。通过$\u SERVER['REMOTE\u ADDR']
您可以保证的是,直接连接到您的机器具有这个确切的IP,并且是真实的。是的。。TBH没有100%可靠的方法来确定某人的IP地址。如果他们通过VPN进入。。这不准确。如果他们再来一次。不准确。然而,从2019年起,$\u服务器['REMOTE\u ADDR']
是确定客户端IP地址的最佳方式。正如@Philip Petrov所述,$\u服务器['REMOTE\u ADDR']
是可靠的,决不能认为它是安全的。。。如果某人的意图是隐藏他们的IP地址,那么通过PHP获取他们的IP地址是不可能的。我不想获取真实的IP地址,我只想获取连接到证书的真实IP,如果令牌用户具有相同的IP。如果有VPN,ip将不同,因此无论如何都不会进行身份验证。我在测试python时遇到了这个问题,在一个来自youtube视频的DDOS示例中,有一个伪ip变量:socket.sendto(((“主机:+fake\u ip+”\r\n\r\n”).encode('ascii'),(目标,端口))
,它不是伪目标ip…您的代码也可能位于负载平衡器或反向代理之后。。。您还应该检查服务器阵列中的X-header(代理将原始IP设置为X-header,并将其自己的IP设置为REMOTE_ADDR)