JWTはどれくらい安全ですか? 質問する

JWTはどれくらい安全ですか? 質問する

プロジェクトのセキュリティのために JWT について学んでいますが、質問があります。ログイン後にトークンを正しく受け取ったが、別の場所にいる他の誰か (ハッカー) がこの特定のトークンを盗んだ場合、そのハッカーは私のセッションにアクセスできますか? JWT 認証を使用するサーバーはこれを検出して保護できますか? どのようにですか?

ベストアンサー1

JWT を生成するために使用される「秘密」を知っているのはサーバーだけです。誰かが JWT に含まれるデータを変更した場合、サーバーはそれをデコードできません。そのため、サーバーはデコードできる JWT であれば信頼できます。

ただし、ハッカーがコンピューターにアクセスした場合、ブラウザーに保存されている JWT が表示され、それを使用する可能性があります。同じ脅威は Cookie にも存在するため、これは実際には JWT の欠陥ではありません。

この脅威を軽減する方法の 1 つは、JWT の有効期限です。銀行アプリの場合、JWT は数分後に期限切れになる可能性があります。Facebook の場合は、数か月後に期限切れになる可能性があります。ただし、誰かがブラウザにアクセスした場合、これに対する完璧な解決策はありません。

ハッカーのもう1つのアプローチは、クライアントとサーバー間のネットワークトラフィックを傍受してCookie/JWTを取得する「中間者」攻撃です。クッキー/JWTは常にHTTPS経由で送信される必要がありますこれを防ぐためです。

重要な編集

最後に、タイトルの「JWTはどれくらい安全ですか?」という質問にお答えします。トークンをどのように保存するかによって異なります。ローカルストレージは、Cookieを使用するほど安全ではありません(参照)しかし、クッキーはCSRF または XSRFエクスプロイト。

この回答では、Cookie は CSRF 攻撃の対象になるため、JWT は Cookie よりも安全であると述べられていました。しかし、JWT をローカル ストレージに保存することも安全ではありません。その結果、私は JWT をローカル ストレージに保存しなくなり、CSRF 攻撃を軽減するためのよく知られた手法を使用するようになりました。

おすすめ記事