現在、私はユーザー認証を管理するためにJSON Webトークンを使用するサーバーを持っています。
ユーザーが有効な認証要求を送信すると、ユーザーIDなどの情報を含むJWTが受信され、サーバーが認証機密要求を処理できるようになります。リプレイ攻撃に対して脆弱ではないトークンベースの認証を持つステートレスサーバーを使用できますか?
JWTのプレーンテキスト本体はと同様の形式を取ります:あなたはかなり正確に指摘することができて、
{
"UserID":"100",
"Expires":"(expiryDate)",
"IssuedBy":"ServerOne"
}
しかし、これは、エージェントがアクセスを提示することを検証するために私たちにどのような方法を買う余裕はありません実際にトークンは最初に発行されたユーザーです。
したがって、誰かがJWTを入手できた場合、期限切れではないと仮定すると、ユーザーの身元を想定して不正なアクセスを得ることができます。
現在のプロジェクトでは、ステートレスサーバーが必須であるため、サーバーを使用してログインしているユーザーを追跡するソリューションを使用するのには苦労します。
このようにトークンを使用してセキュリティを実現することは可能ですか?
私はこのトピックについて少し読んだことがあります。「X-Forwarded-For」ヘッダーのようなものを使用し、ユーザーのIPをトークンに入れて比較することを提案している人もいるのですが、それは自分の欠点です。