我希望能够验证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:传输密码是否安全?
答案 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
。