ログインして使用する必要があるフロント/バックアプリケーションがあります。ログインすると(フロントエンドアプリがリクエストをバックエンドに送信することにより)、Cookieを送信するのではなく、トークンを含むJSON
を送信します。後者は、フロントエンドアプリによってsessionstorage
に格納され、バックエンドとやり取りするたびに、sessionstorage
に格納されているトークンと共にリクエストを送信します。バックエンドはトークンの有効性を検証します。
このソリューションはCSRF安全だと思いますか?検討/無視していない他の脆弱性はありますか?
CSRFの場合はCookieを使用するよりも確かに安全ですが、XSSの場合はセッションストレージをJavaScriptから読み取ることができるのに対し、http専用のCookieを使用することはできないため、安全性は低くなります。
それは、XSSに対する保護についてどれだけ自信があるかに依存します。
このアプローチを採用する場合は、ベアラースキームでAuthorizationヘッダーを使用することをお勧めします。
Authorization: Bearer <token>
その他の注意事項: