我正在使用php制作客户端/服务器应用程序。
服务器采用数组序列化并回显结果。
服务器可以托管在www.site1.com/server.php
echo serialize($array);
客户可以在www.site2.com/client.php
托管$ch = curl_init('http://www.site1.com/server.php');
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
我查找了什么变量,或者有办法做到这一点?
答案 0 :(得分:1)
如果客户端具有固定IP,则可以反向DNS客户端并查看IP是否正确。不知道那是多么可靠。我不是黑人艺术 - 这条路走向黑暗的一面。
答案 1 :(得分:1)
client.php
$ch = curl_init('http://www.site1.com/server.php?supersecretpassword');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
echo curl_exec($ch);
server.php
if($_SERVER['QUERY_STRING'] === "supersecretpassword"){
echo curl_exec($ch)
} else {
exit();
}
作为额外的安全措施,您可以检查server.php,如果$ _SERVER ['REMOTE_ADDR']等于您的client.php所在的计算机的IP地址。
答案 2 :(得分:-1)
如您所述,无法准确保护通信。对您的问题真正有安全意识的回答是设置防火墙。