2017-11-10 7 views
0

初心者はREST APIです。 私は、それぞれが自分のAPI key)を持っている(複数のユーザーにアクセス権を与えるI(JSON出力を提供します)REST APを作成しました。許可されていないウェブサイトで私のAPIを使用しないように制限する

を、私は、各ユーザーがだけでなく他のウェブサイトのために、特定のウェブサイトにAPIを使用することができますしたい。

例:

(ユニークAPIキーを持つ)ユーザーAが "example1.com" のための私のAPIを取っ

ユーザー-B(ユニークAPIキーとは)example2.com」のための私のAPIを取りました。 "

私のAPIはこれらの2つのサイトで実行する必要がありますので、「example3.com」で実行することはできません。

どうすれば制限できますか?ここでuはCORS(クロスオリジンリソースの共有)を見て達成したい何のため

+0

IP経由でアクセスを制限することができます。 – Andrew

+0

IP経由でアクセスを制限すると、同じIPが異なるWebサイトで共有されることがあります。 これはあなたのニーズに役立つかもしれません: https://stackoverflow.com/questions/9140504/restricting-access-to-rest-api – fromthestone

+0

答えのためにアンドリューに感謝します。 CURLが呼び出されている場所からWebサイトのIPを取得するにはどうすればよいですか?私は$ _SERVER ['REMOTE_ADDR']で試しています。 、HTTP_ORIGIN – Lokanath

答えて

0

post

その上に基本的にはサーバ側(PHP)uが行うことができますあなたの場合は

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Headers: X-Requested-With, content-type, access-control-allow-origin, access-control-allow-methods, access-control-allow-headers'); 

で以下のようなもの:より多くのリソースについては

$http_origin = $_SERVER['HTTP_ORIGIN']; 
if ($http_origin == "http://www.domain1.com" || $http_origin == "http://www.domain2.com" || $http_origin == "http://www.domain3.info") 
{ 
    header("Access-Control-Allow-Origin: $http_origin"); 
} 

このpost

012を見てみましょう

コード部の免責事項:https://stackoverflow.com/a/7454204/1027877

+0

HTTP_ORIGINはerror.A PHPエラーが 重要度に遭遇したthroughing ...私のために仕事をいけませんAPIユーザーはCURLを使用してデータを送信します。 – Lokanath

+0

がでも私はHTTP_REFERERと試みたが、いけない仕事: メッセージを注意:未定義のインデックスを私の問題を解決されていませんこの1 .. – Lokanath

+0

この情報を確認するhttps://stackoverflow.com/a/41335048/1027877 –

関連する問題