我正在构建一个API,并打算允许来自特定域的API调用。我正在使用‘curl’操作符进行API调用,而不设置头部:
curl_setopt($ch, CURLOPT_HEADER, 0);所以,当我检查$_SERVER‘’HTTP_REFERER‘时,它是’NULL‘。
现在,如何在PHP中检查调用是否来自特定的域?
谢谢
发布于 2014-07-17 19:39:44
您必须检查特定的域名是否存在于$_SERVER['REMOTE_ADDR']的DNS中
<?php
$ip = gethostbyname('www.example.com');
$valid_call = $ip == $_SERVER['REMOTE_ADDR'] ? true : false;请记住,永远不要信任HTTP标头。它们可能会被操纵,而IP可能不会。
发布于 2014-07-17 19:49:47
有两种方法可以在cURL的头部中传递REFERER。
I.手动CURLOPT_REFERER
curl_setopt($ch, CURLOPT_REFERER, 'http://example.com');二、自动化或使用CURLOPT_AUTOREFERER
curl_setopt($ch,CURLOPT_AUTOREFERER,true);
https://stackoverflow.com/questions/24802447
复制相似问题