2017-06-01 19 views
0

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であることを確認することができますのは、website1.comがはカールapiwebsite.com/api.php

を経由してからコードを要求したとしましょうか?この特定のドメイン名へのアクセスを許可するにはどうすればよいですか?

お客様のコードからの送信は、私が望むものではありません。これは簡単に破損する可能性があるためです。 APIを要求するドメインが本当にwebsite1.com

であれば、私はそれが可能ですapiwebsite.com/api.phpコードから直接確認したいですか?

そうでない場合は、少なくともIPアドレスを確認できますか?ネームサーバーのようなものは?

ありがとうございます。

PS:パスワードを送信するにはカールは安全ですか?

+0

htaccessを使用してwebsite1.comのIPアドレスのみを許可してください – 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> 

最後の2行は自分のためapi.phpにアクセスすることです。

+0

ありがとうございました。 このコードは完全に機能します。 – Andre

関連する問題