JWTをセッション管理に使っていいだのよくないだのいう話
結論
リスクを理解して使えば良い
よく言われるリスク
セッションを即時無効化できない
トークンの有効期限が切れるまでセッションは続く
Authサーバーで無効にしても問い合わせは来ないので切れない
即時無効化はできない
どの程度のリスクと捉えるか
アクセストークンが盗まれてる時点でアレなので、検知してから無効化できるまでの時間を数時間〜数十分程度早められる(もしくは遅くなる)ことをどれほど意味があると考えるか
リフレッシュトークンの期限が切れる条件も載っている
パスワードを変えたりしても最大1時間は前のセッションが有効ということだな
有効期間はどれくらい短くしても現実的に問題ないのだろうか
それでもXSS対策としてはほとんど意味がない(と言われてる気がするけど本当だろうかzakuni.icon)
CSRFでXSSを起こしたりとか
多分この辺は、CookieとWebStorageを比較する別の話なのだと思う
誤解を生む名前になってる気がする
セッションIDでなく、セッションデータそのものの情報をJWTで返して使わせるのにはリスクがある(?) Authサーバーへの問い合わせが挟まることで無効化できるようになったりするということか
JWTにはそもそも電子署名が含まれているはずで、この場合セッションデータと呼んでいるものはなんだろうか アクセス権とかの情報かな
どの話をしてるのかによってリスクも変わる
Stateless JWT
Statefull JWT
JWTとCookieの組み合わせとか
ちゃんと中身(とリスク)を理解して使いましょう、というセキュリテイの基本的な話のようだ セキュリティはリスクの高低の話であって、0か1かではない
それメリットになってないよって話と明らかなデメリットだよって話が混ざってるとわかりにくい
セッションに関するリスクということで、こんな感じだろうか
された場合にどれぐらい被害が広がるか
検出できるかどうか
これらについても、違うテーマについて話すと噛み合わない
攻撃そのものをどう防げるか
攻撃が成功してしまった場合にどう対処できるか
あと、検知できるか
完璧に防げないからダメ、みたいなのはナンセンス
未知の脆弱性について語ることはできないので
どうだから意識しなくても防げるかとか、こうだから脆弱性を生みやすいとかならわかる
なので被害をどう最小限にできるか、という話も当然含まれて然るべき