3

json API を使用したアプリがあります。ブラウザで Javascript を使用して ajax 呼び出しを送信します。各 API 呼び出しには API キーが必要です。

ユーザー名とパスワードを受け入れ、その特定のユーザーの API キーを返すログイン API を実装することを計画していました。キーは Cookie に入り、すべての API リクエストで返されます。(まだ json リクエストに含めることができます。Cookie はフォールバックになります。)

このスキームの大きな利点は、サーバー側でセッションを維持する必要がないことです。サーバー側のすべてがステートレスになります。クラスター化された環境では、ステートレス操作に大きなメリットがあります。

これは悪い考えですか?安全ですか?より良い方法はありますか?

https で実行しているとします。

4

2 に答える 2

2

いいえ、あなたが言及したように、https を使用していても、API キーはこの方法では安全ではありません。これは、API キーがブラウザー上に存在し、ブラウザーのプラグインやスクリプトなどによって公開される可能性があるためです。

ここで考慮すべきもう 1 つのことは、トークンの有効期間です。このような場合、API トークンの有効期限を短くすることをお勧めします。

幸いなことに、多くの人が同じ要件を持っており、OAuth 2 仕様には、あなたが言及したユース ケースのためだけに Implicit Grant ケース フローがあります。あなたはそれを見て、あなたのアプローチを決めることができます.

https://www.rfc-editor.org/rfc/rfc6749#section-4.2

于 2013-07-20T04:44:47.643 に答える
1

古いブラウザーのサポートが不要で、API キー クライアント側へのアクセスのみが必要な場合は、代わりにローカル ストレージを使用できます。その方法では、サーバーとの間で Cookie を送受信する必要がなく、Cookie はありません。それは盗むことができます。

于 2013-07-19T23:32:16.477 に答える