HTTP_REFERER为NULL时如何检查引荐URL?

时间:2014-07-17 11:36:23

标签: php curl http-referer

我正在构建API并打算允许来自特定域的API调用。我使用'curl'运算符来进行API调用而不设置标题:

curl_setopt($ch, CURLOPT_HEADER, 0);

所以,当我检查$ _SERVER ['HTTP_REFERER']时,它是'NULL'

现在,如何检查PHP是否从特定域进行调用?

由于

2 个答案:

答案 0 :(得分:1)

您必须检查特定域是否代表$_SERVER['REMOTE_ADDR']

的DNS
<?php
$ip = gethostbyname('www.example.com');
$valid_call = $ip == $_SERVER['REMOTE_ADDR'] ? true : false;

请记住,永远不要信任HTTP标头。它们可能被操纵而IP可能不会被操纵。

答案 1 :(得分:0)

有两种方法可以在带有cURL的标题中传递REFERER,

予。 Manualy CURLOPT_REFERER

curl_setopt($ch, CURLOPT_REFERER, 'http://example.com');

II。 Automaticaly 或使用 CURLOPT_AUTOREFERER

  

curl_setopt($ ch,CURLOPT_AUTOREFERER,true);

请参阅cURL setopt docuemntation