Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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_Security_Curl - Fatal编程技术网

Php 如何识别请求来自何处?

Php 如何识别请求来自何处?,php,security,curl,Php,Security,Curl,我计划通过curl将一些数据从服务器A发送到服务器B。我有点担心攻击者(服务器C)会假装成服务器a: A->B : Hello, I am server A; C->B : Hello, I am server A; 服务器B如何知道谁是服务器A或哪些数据来自服务器A 我是PHP的新手。非常感谢您的帮助。您可以使用$\u SERVER['REMOTE\u ADDR']获取客户端IP 只需获取服务器A的IP地址,然后在服务器B上检查$\u server['REMOTE\u ADDR'

我计划通过
curl
将一些数据从服务器A发送到服务器B。我有点担心攻击者(服务器C)会假装成服务器a:

A->B : Hello, I am server A;
C->B : Hello, I am server A;
服务器B如何知道谁是服务器A或哪些数据来自服务器A


我是PHP的新手。非常感谢您的帮助。

您可以使用
$\u SERVER['REMOTE\u ADDR']
获取客户端IP

只需获取服务器A的IP地址,然后在服务器B上检查
$\u server['REMOTE\u ADDR']
是否等于服务器A的IP地址

虽然如果服务器C与服务器A位于同一子网上,那么它将具有相同的地址

在这种情况下,您可以让A向服务器B发送密钥,B验证密钥

例如:
A===data='blabla'===key='654zd87zda32z1d68zad7'==>B

在B侧,检查键是否等于654ZD87ZDA32ZLD68ZAD7。您可以定期更改此密钥以提高安全性(和/或使用更复杂的密钥)


在node.js上,获取客户端IP(使用express)也很简单,使用:
req.IP

您的目标是什么?为什么要发送数据?也许你应该阅读关于复制、集群和负载平衡的内容(如果我正确解释了你的目标的话),我只是想把一些用户数据从PHP发送到nodejs服务器。那么为什么它被标记为PHP而不是nodejs呢?看看这个答案:恐怕服务器C也知道IP地址。IP地址验证是否足够安全?我需要发送加密密钥吗?为了最大的安全性,您可以同时发送加密密钥和加密密钥。虽然IP应该是唯一的,并且不能篡改其IP地址(例如,您可以更改您的mac地址)。