0

私は 1 つのサービスの API を作成していますが、いくつかの URL の呼び出しを制限する必要があります。あなたがユーザーであり、stackoverflow.com のみが自分の情報を表示できるようにするか、stackoverflow.com、facebook.com、および google.com が自分の情報を表示できないように選択したとします。

バックエンド (ホワイト リストとブラック リスト) にシステムがありますが、呼び出しから URL を取得する方法を見つける必要があります。

はい、curl を使用している人もいますが、簡単ですが、多くの人は単純に file_get_contents() を使用します。また、この API には画像出力があるため、使用する人もいます。

<img src="http://domain.com/api/something.jpg" />

開発者が実際にURLを呼び出し元のURLにエンコードすることなく、URLを取得する方法はありますか?

ありがとう

4

1 に答える 1

0

$_SERVER['REMOTE_ADDR']要求しているクライアントの IP アドレス ( ) を確認します。API への接続を許可するサーバーの IP アドレスをホワイトリストに登録できます。画像出力については、$_SERVER['HTTP_REFERER']ホワイトリストに登録したドメインからのものであることを使用して確認できます。

ただし、この実装はお勧めしません。API キーを使用する必要があります。これらは、API を使用してクライアントに与えられるパスワードのようなものです。API キーを持っている人だけが API にアクセスできます。同時に、サーバーの IP アドレスが変更されても、引き続き API にアクセスできます。

于 2012-09-17T08:55:23.590 に答える