2012-02-04 21 views
2

私はREST APIを使用してアプリケーションのPHPバックエンドを作成しています。REST APIへのアクセスを制限する

otherのスクリプトが自分のAPIにアクセスしないようにしたいと思います。私はそれらを避けるために$ _SERVER ['HTTP_REFERER']を使うことを考えました。しかし、in what situation does the HTTP_REFERER not work?は、私たちはそれに頼ることはできないと言います。

私のクライアントだけにAPIを制限する他の方法はありますか?

答えて

3

したがって、Marcinが示唆しているように、HTTP基本認証を実装できます。または、HQarroumによってsuggstedとしてOAuthを実装できます。前者は実装がずっと簡単です。 HTTP BASICの場合は、クライアントからの要求は、次のようになります。

..ます。https:// ユーザ名:パスワード

.. yourbackend.host.com /リソース/方法/ fooの/バー@実装HTTP基本認証をあります非常に簡単です。 Apacheの場合は、 thisを参照してください。 nginxについては、 thisを参照してください。

OAuthに関しては、これはもう少し複雑な実装です。 OAuthを調べていて、異なるスコープ(異なるレベルのデータにアクセスするための認可レベル)が必要ない場合は、2足のOAuthフローを実装する必要があります。しかし、あなたが保護されたリソースの唯一の消費者であれば、OAuthが過度のものになるかもしれないと私は信じています。

いずれの場合もSSL(https)を使用することをおすすめします。

よろしく、
ニール
http://developer.mashery.com

1

OAuthプロトコルを見て、APIを使用してクライアント用に実装する必要があります。

1

通常のHTTPユーザー/パス認証を使用できます。

関連する問題