-1

django restフレームワークを使用してトークンベースの認証を実装しました。
しかし、ブラウザの開発者ツールを使って見ると、トークンはHTTPリクエストヘッダーに表示されます。私はこのトークンを使ってPostmanの助けを借りてAPIから私的なデータを取り出すことができます。したがって、私はこれが認証のための安全な方法ではないと感じています。私の質問は、トークンベースの認証ごとにHTTPリクエストヘッダーに表示されるトークンです。いいえ、どちらを使うべきか教えてください。Django restフレームワークトークンベースの認証、トークンはhttpリクエストヘッダーに表示されます

+1

セキュリティを強化するため、httpsを使用してください。ヘッダーも暗号化されています。 –

+0

サーバー用にhttpsを使用していますが、ブラウザの開発者コンソールのhttp要求ヘッダーにAuthorizationヘッダーが明瞭に表示されています。私は、データがネットワーク上で暗号化されていることを理解していますが、ヘッダーへのローカルアクセスは暗号化することもできます。 –

+0

各リクエストを認証するには何らかの方法が必要です。トークンと一緒にhttpヘッダーを使用することは、Cookieを使用する場合よりもあまり安全ではなく、httpリクエストごとに送信されるCookieも使用します。 –

答えて

0

トークンは、このユーザーのログインセッションに固有です。ユーザーがログインしていて、攻撃者がデバイスへの物理的なアクセス権を持っている場合でも、ユーザーはインターフェースを介して必要なすべてのデータにアクセスできます。トークンを暗号化することは、バックエンドに文字列として送信されるため、目的を果たせません。パスワード自体ではなくパスワードのハッシュを送信するのと同様に、ハッシュは新しいパスワードになります。あなたができる最善のことは、5分(銀行/財布で使用される)のような一定期間活動がない場合、トークンを無効にすることです。もう1つは、Postmanクエリーに対するユーザエージェントベースの拒否です。あるいは、最も妄想的なことに、デバイスの指紋(https://github.com/Valve/fingerprintjs)をトークンに(ログイン時に)マップし、他のデバイスが同じトークンにアクセスするのを防ぐことができます。余りにも遅くないので、これが役立つことを願っています。

関連する問題