Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 美元服务器[';远程地址';]安全吗?_Php_Api_Http_Ip - Fatal编程技术网

Php 美元服务器[';远程地址';]安全吗?

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

我正在从事一个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']
您可以保证的是,直接连接到您的机器具有这个确切的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)