2010-12-13 1 views
1

私は一般的な質問としてこれをフレーズしようとします。「ファームを売る」ことなくWebサービス用のAPIを設計しますか?

会社は、貴重な情報がたくさんあるウェブサイトを運営しています。この情報は、内部プライベートデータベースから照会されます。技術的には、データベース内の情報は重要な部分です。

この会社は、有用な情報の貴重なデータベース&にアクセスするために開発者が使用できるAPIを開発したい場合、どのようなアプローチを取るべきですか?

開発者に必要なものを提供することが重要です。しかし、競合するウェブサイトを本質的にAPIを使用しないようにして、すべてを盗み、本質的に会社のウェブサイトからのすべてのトラフィックを盗むことも重要です。

元の会社のウェブサイトに何らかの形でトラフィックを戻す方法でAPIを使用できる方法はありますか?何かがユーザーに続ける理由を与えます。

これは私の会社が他のウェブベースのサービスがこれまでに出会ったと想像することができるように苦労している設計上の考慮事項です。

答えて

2

私はAPIキーを提供し、すべての開発者が遵守しなければならないTOSを述べている多くの企業を見てきました。たとえば、APIのデータを使用するページには、ロゴとウェブサイトへのリンクが含まれている必要があります。ルールを破っている開発者がいる場合は、APIキーをキャンセルしてデータを安全に戻すことができます。

3
  1. 研究所APIキー - 公開しないでください。サインアッププロセスを「電子メールアドレスを持つ人」よりも複雑にするかもしれません。
  2. レートはキーに基づくAPIを制限します。 X個以上のリクエストを1分以上実行している場合は、データベースをマイニングする可能性があります。
  3. "すべてをフェッチする" APIを提供しないでください。ユーザーに情報を入手するための情報を提供します。あなたが知っていることを明らかにしないでください。
0

誰がAPIを使用するのですか?

この問題を解決する一般的な方法は、エンドユーザーにデータへのアクセスを制限することです(アプリケーションまたは開発者に許可するのではなく)。アプリケーションとユーザーにそれぞれIDを提供し、データのサブセットにアクセスするには、ユーザーキーとアプリケーションキーの両方の組み合わせが必要であることを確認します。

このパターンに従うと、各ユーザーは非常に限定されたデータのサブセット(おそらく、自分の特定の用途に必要なデータ)にアクセスし、これを実施するための対策を講じることができます。データマイニングの試みは明白になります。

このタイプのアプローチは、サーバー側のケイパビリティタイプのセキュリティモデルとよくマッチします。