如何通过curl验证,允许和禁止域名访问php文件

时间:2017-06-01 02:07:26

标签: php api curl dns verify

我希望能够验证cURL请求的来源。

所以,这是客户将使用的api:

$url_api = 'http://apiwebsite.com/api.php';
$post_data = array(
    'test' => 'test',
    'test2' => 'test2',
    'test3' => 'test3',
    );
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_api);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
if($output === FALSE){echo "cURL Error: " . curl_error($ch);}
curl_close($ch);
print_r($output);

然后,在 apiwebsite.com/api.php 上,我需要编码以验证请求的来源。

假设 website1.com 请求来自via curl的代码 apiwebsite.com/api.php

如何验证域名是否真的 website1.com ?我怎样才能允许api访问这个特定的域名?

通过帖子或客户代码中的任何其他地方发送不是我想要的,因为这可以很容易地破解/破解。我想直接从 apiwebsite.com/api.php 代码验证,如果请求api的域名是 website1.com

有可能吗?

如果没有,我至少可以验证IP地址吗?或跟踪名称服务器之类的内容?

谢谢。

PS:传输密码是否安全?

1 个答案:

答案 0 :(得分:0)

使用.htaccess只允许api访问' website1.com'。您不需要检查api文件中的任何内容。

在你的htaccess文件中使用它

   <files api.php>
    order deny,allow
    deny from all
    allow from 0.0.0.0 (Ip for website1.com)
    allow from 1.1.1.1 (Ip for your server)   
    allow from 1.1.1.1 (Ip for your work/personal/ network)   
    </files>

最后两行是为自己访问api.php