この記事 Auth0から、ローカルストレージ(またはCookie)にJWTをローカルに保存することをお勧めします。しかし この記事 OWASPは、機密データをローカルで(セッションストレージでさえも)ストーリー化しないことを推奨しています
では、JWTトークンをローカルに保存しても安全ですか?
なんて奇妙なことでしょう。 1か月ほど前に基本的に同じ質問をしました。
結局、HTTPレベルで次のことを行う限り、JWTトークンにlocalstorageを使用しても問題ないと判断しました。
localhost:4200
上記は securityheaders.io でA/A +を提供し、最も一般的な攻撃(iframeにWebサイトを埋め込み、localstorageからデータを抽出するなど)を防ぎます。
まあそれは依存します。アプリケーションにXSSの脆弱性がある場合、攻撃者はローカルストレージからJWTを抽出して使用できます。
私が使用した方法で、Auth0はJWTストレージとしてCookieを使用し、フラグHTTP Only and Secureを使用することを示していると思います。XSSの脆弱性がある場合、Cookieを読み取ることができず、安全な方法でのみ輸送されます。最近のすべてのフレームワークにCSRF緩和策が含まれているため、CSRFは最近のリスクが少なくなっています。
これは、検証がサーバー側のCookieからJWTを抽出して検証することを意味します。私の個人的な見解は、CSRFは攻撃面が大きいXSS攻撃に比べて簡単に見つけて緩和できるため、Cookieをストレージとして使用することです。