Php 有没有办法用curl验证客户端?
我正在用php制作一个客户机/服务器应用程序 服务器获取一个数组并序列化和回显结果 服务器可以托管在www.site1.com/server.php上Php 有没有办法用curl验证客户端?,php,Php,我正在用php制作一个客户机/服务器应用程序 服务器获取一个数组并序列化和回显结果 服务器可以托管在www.site1.com/server.php上 echo serialize($array); if($_SERVER['QUERY_STRING'] === "supersecretpassword"){ echo curl_exec($ch) } else { exit(); } 客户机可以托管在www.site2.com/client.php上 $ch = curl_init
echo serialize($array);
if($_SERVER['QUERY_STRING'] === "supersecretpassword"){
echo curl_exec($ch)
} else {
exit();
}
客户机可以托管在www.site2.com/client.php上
$ch = curl_init('http://www.site1.com/server.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
echo curl_exec($ch);
$ch = curl_init('http://www.site1.com/server.php?supersecretpassword');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
echo curl_exec($ch);
我试图做的是使server.php仅在客户端来自www.site2.com/client.php时回显信息
差不多
iff('Client is from www.site2.com/client.php'){
echo curl_exec($ch)
} else {
exit();
}
site2没有SSL
我应该查找什么变量,或者有什么方法可以做到这一点?如果客户端有固定的IP,您可以反向DNS客户端,查看IP是否正确。但不知道这有多可靠。我不喜欢黑色艺术——这条路通向黑暗面。client.php
$ch = curl_init('http://www.site1.com/server.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
echo curl_exec($ch);
$ch = curl_init('http://www.site1.com/server.php?supersecretpassword');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
echo curl_exec($ch);
server.php
echo serialize($array);
if($_SERVER['QUERY_STRING'] === "supersecretpassword"){
echo curl_exec($ch)
} else {
exit();
}
作为额外的安全措施,如果$\u server['REMOTE\u ADDR']等于client.php所在计算机的IP地址,您可以在server.php中进行检查。无法准确地保护您描述的通信安全。对于您的问题,真正注重安全的答案是设置防火墙。没有SSL,中间人攻击不是很容易受到攻击吗?@DanMan-是的,是的。为了防止这种情况发生,您可以使用triple-des或blowfish或其他方法对响应进行加密,因为客户端和服务器可以共享机密。