2

Web アプリケーションを作成しましたが、他の開発者がそこから情報を取得できるようにしたいと考えています。

私が取り組んでいるサーバーはそれほど面倒ではなく、それほど多くのリクエストを処理することはできません。そのため、情報を照会したいすべての人に API キーを生成して割り当てるという考えです。API キーを使用すると、毎日のリクエストを制限し、統計を収集して、他の開発者にとって本当に役立つ情報を確認できます。

問題は、セキュリティ面が心配だということです。API キーは (GET/POST などを介して) サーバーに送信されるため、誰かが Wireshark を使用してリクエストを傍受し、開発者の API キーを簡単に取得できます。

秘密鍵と API キーを生成することを考えました。次に、他の開発者にそれらを連結し、そのハッシュを API に送信するように指示できます。次に、ハッシュが有効であることを検証し、リクエストを許可します...しかし、同じ問題が続きます。ハッカーは引き続きそのハッシュを盗聴し、他の開発者のアプリに代わってリクエストを行うことができます.

だから私の質問は

  • この問題を回避するにはどうすればよいですか?
  • またはさらに良いことに、私の懸念は有効ですか? それは本当の問題ですか?
  • 他の開発者にとって複雑になりすぎずに、自分の情報へのアクセスを許可する、より安全で安全な方法はありますか?

皆さんはどう思いますか?

4

3 に答える 3

2

ここでさまざまな質問を解決しようとしていると思います。

サーバーへのリクエスト数を制限することが目的の場合は、調整メカニズムを作成する必要があります。これは些細なことではありませんが、ライセンス キーではなく IP アドレスに基づいていると思います。1 人のライセンス ユーザーが大量の要求でシステムを圧倒する可能性があります。ライセンス メカニズムを実装せずに、IP アドレスでスロットルできます。

ライセンススキームを作成したい場合は、暗号化などを理解する必要があります。これは重要な問題です。たとえば、正当なユーザーが自分のライセンス キーをすべての友人と共有するのをどのように阻止しますか? ハッカーがあなたの鍵を盗み、それを彼の友人全員と共有するのをどのように阻止しますか?

これには多くの解決策があります - それらはすべてユーザーにある程度の苦痛を課します. たとえば、HTTPS でサービスを実行できます。これによりスヌーピングは停止しますが、パフォーマンスは低下します。サービスの「トークン」を発行できます。このトークンは、一定回数使用すると期限切れになります。新しいトークンを取得するには、暗号交換が必要です (IP アドレスを確認する場合があります)。「チャレンジ/レスポンス」タイプのロジック (IP アドレスの検証を含む) が必要になる場合があります。これらのすべてのステップは、ユーザーの生活を困難にします。彼らは、彼らがしなければならない余分な仕事に対してあなたにあまり感謝しないでしょう.

于 2012-05-15T15:56:09.710 に答える
2

sniff に関しては、問題はサーバー上の HTTPS で解決できます。

于 2012-05-15T13:58:29.343 に答える