2017-06-01 77 views
0

我希望能夠驗證cURL請求來自哪裏。如何驗證,允許和禁止域名通過curl訪問php文件

所以,這裏是客戶會使用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要求從代碼通過捲曲apiwebsite.com/api.php

我如何可以驗證該域名確實是website1.com?我怎樣才能讓api訪問這個特定的域名?

通過郵寄或任何其他地方的客戶代碼發送不是我想要的,因爲這可以很容易地打破/破解。我想直接從apiwebsite.com/api.php代碼來驗證請求API所訪問的真正website1.com

這可能嗎?

如果不是,我至少可以驗證IP地址嗎?或跟蹤名稱服務器之類的任何內容?

謝謝。

PS:捲曲是否安全傳輸密碼?

+0

使用htaccess僅允許IP地址爲唯一website1.com – ASR

回答

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自己。

+0

謝謝,沒有關於它。 此代碼將完美工作。 – Andre

相關問題