JSON Web トークンの無効化
トークンベースのセッションの無効化
セッションベースのアプローチとは異なり、JSON Web トークン (JWT) ) セッションを管理するために中央のキー/値ストアに依存しません。代わりに、トークン自体がユーザー情報とセッション データをカプセル化します。これにより、トークンベースのセッションをサーバーからどのように無効にするかという問題が生じます。
一般的な無効化メカニズム
-
クライアントからトークンを削除する: これにより、クライアントはアプリケーションにアクセスできなくなりますが、サーバー側からは保護されません
-
トークン ブロックリストの作成: 無効なトークンは、有効期限が切れるまでブロックリストに保存できます。ただし、これにはリクエストごとにデータベースへのアクセスが必要になり、トークンベースのアプローチの利点が無効になる可能性があります。
-
短い有効期限とトークンのローテーションを維持する: 短い有効期限を設定し、クライアントに新しいトークンを定期的に要求すると、無効になったトークンは事実上終了します。ただし、頻繁に再ログインが必要になるため、ユーザーの利便性が制限される可能性があります。
緊急時対応計画
緊急事態またはトークン侵害の場合には、次の緊急時対応策を検討してください。
-
基になるユーザー ID の変更:侵害されたトークンに関連付けられたユーザー ID を変更し、関連付けられたすべてのトークンを無効にします。
-
最終ログイン日の監視: 長期間非アクティブな状態が続いた後に再ログインを強制するには、トークンに最終ログイン日を含めます。 .
落とし穴と攻撃
トークンベースのセッションは、次のようないくつかの脆弱性を Cookie ベースのセッションと共有します。
-
ブルート フォース攻撃: 攻撃者は推測を試みることができます。または、ブルート フォースで JWT シークレットにアクセスします。
-
クロスサイト リクエスト フォージェリ (CSRF): 攻撃者はユーザーをだまして、トークンを検証する悪意のあるリソースにアクセスさせることができます。
-
リプレイ攻撃:攻撃者は取得したトークンを再生してアプリケーションにアクセスすることができます。 authorization.
-
フィッシング: 攻撃者はユーザーをだまして資格情報を提供させ、それを使用して新しいトークンを生成できます。
-
中間者攻撃: 攻撃者はトークンを傍受し、変更して、アプリケーション。
以上がJSON Web トークン (JWT) をサーバー側から効果的に無効化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。