0

私は現在、リモート Web サイトを介していくつかのサービスを提供する必要がある REST/JSON API に取り組んでいます。私はこれらの Web サイトのエンド カスタマーを知りません。彼らは API サーバーにアカウントを持っている/持っていないはずです。API サーバーに存在する唯一のアカウントは、Web サイトを識別するアカウントです。これはすべて RESTful であるため、すべての通信はエンドユーザー ブラウザ (javascript/JSON 経由) と REST API サービスの間で行われるため、仲介業者の請求額を増やすことに関心のあるサード パーティによってシステムが悪用されないようにするにはどうすればよいでしょうか。 ? (仲介者は、私のサービスを再販する Web サイトの所有者です)。Web サイトの所有者を破産させるためだけに、ユーザーが Web サイトから js コードを取得して 1000000 回呼び出すことを防ぎ、機能する認証方法をお勧めしますか? 私は HTTP_REFERER を使用して、それを IP アドレスに変換することを考えていました (コードをホストしているサーバーを見つけ、この IP に基づいて認証するため)、HTTP_REFERER は簡単に偽装できると思います。私は顧客のエンド カスタマーが API サーバーに登録することを望んでいません。これは、この API の目的を無効にします。

いくつかのアイデアをお願いします。

ありがとう、ダン

4

1 に答える 1

0

これはあなたにとって選択肢ではないかもしれませんが、この場合に私が以前に行ったことは、REST 呼び出しの上にプロキシを作成することです。Web サイトが独自の内部サービスを呼び出し、そのサービスが REST 呼び出しを呼び出します。利点は、あなたが言ったように、誰もあなたの REST 呼び出しを直接ヒットしたり、呼び出しを偽装しようとしたりできないことです。

それができない場合は、HMAC ( http://en.wikipedia.org/wiki/Hash-based_message_authentication_code ) のような認証スキームを実装できます。多くの API がこれを使用しているのを見てきました。

API 認証に HMAC-SHA1 を使用 - クライアントのパスワードを安全に保存するには?

Java コードの認証は次のようになります: http://support.ooyala.com/developers/documentation/api/signature_java.html

いずれにせよ、サーバー側で何らかの作業を行う必要があると思います。そうしないと、すべてが純粋にクライアント側である場合に、人々が API をリバース エンジニアリングできる可能性があります。

于 2013-02-01T19:53:15.970 に答える