2017-01-06 15 views
0

私は、認証にJWTを使用するMEANスタックアプリケーションを持っています。私はSatellizer(Angularモジュール)を使ってJWT認証フローを実装しています。アプリを介してリクエストが行われるたびに、ベアラトークンとともにAuthorizationヘッダーを送信します。ブラウザのアドレスバーからURLを直接ロードするときにJWTが送信されない

私の問題は、アドレスバーから/dashboardと言われる制限付きURLへのリクエストが行われたときに、ブラウザが承認ヘッダを送信しないため、リクエストをブロックするということです。

制限URLへのリクエストを行う際にブラウザが承認ヘッダーを送信するにはどうすればよいですか?

答えて

1

ユーザーがバーに直接アドレスを入力すると、エラーフォームにリダイレクトする以外の操作はできません。ブラウザは特定のヘッダーを送信しません

ただし、ユーザーがクリックするリンクを構築する場合は、URLリンク自体にJWTトークンを追加することができます/dashboard?jwt=。サーバーでは、この認証のケースを考慮する必要があります

この場合、ブラウザはURLをキャッシュしてログに書き込む可能性があります。 JWTが署名され、暗号化されていない場合、攻撃者がログファイルに読み取りアクセス権を持つ場合、機密情報が漏洩する可能性があります。また、セッションハイジャック攻撃も可能です。

+0

合意されていますが、クエリ文字列にトークンを送信することをお勧めします。右? –

+1

私はあなたに同意します。ブラウザはURLをキャッシュして、いくつかのログに書き込むことができます。 JWTが署名され、暗号化されていない場合、攻撃者がログファイルに読み取りアクセス権を持つ場合、機密情報を漏洩する可能性があります。セッションハイジャック攻撃も可能です。したがって、OPはこのオプションを使用する際には注意が必要です – pedrofb

関連する問題