有没有办法用curl验证客户端?

时间:2010-12-28 17:16:19

标签: php

我正在使用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

我查找了什么变量,或者有办法做到这一点?

3 个答案:

答案 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)

如您所述,无法准确保护通信。对您的问题真正有安全意识的回答是设置防火墙。