お世話になっております
Firebase Authenticationを使おうと思っているのですが、
セキュリティについて気になる点があったので、ご教授いただきたいです
構成はクライアント(SPA)とAPIサーバー(Firebase admin)として、
ユーザーの認証は以下のような流れで公式に書いてあります
1 クライアントでトークンを取得し, APIサーバーに送信
2 APIサーバーはverifyIdToken(またはVerifyIDTokenAndCheckRevoked)でトークンを検証
このトークンはセッション管理に使用されていると思われますが(参考URL)、
トークン自体はブラウザのindexedDBに保存されています
SPAのユーザー認証でlocalStorageに入れるとXSSのリスクがあるというのは有名です
Cookie(httponly + secure)とサーバーサイド側のセッション管理をするのが現状は無難という認識ですが、
Firebase Authenticationについて、以下の認識で合っていますでしょうか?
1 セッション管理はしている
2 しかし、indexedDBなのでXSSのリスクはある(localStorageで取り上げるよくある問題)
他にもセキュリティリスクがあったらぜひ教えていただきたいです
お手数ですが、よろしくお願いいたします
追記
ご指摘をいただいて、今回の質問はXSSではないかもしれません
今回の質問は、ユーザーの入力値などでJavaScriptが実行されるものではなく、
scriptタグなどで第三者のJSを実行している時、その第三者のJSが改ざんされ、localStorage/indexedDBの値を抜かれるというものです
こちらの記事を読んで気になりました
https://techracho.bpsinc.jp/hachi8833/2019_10_09/80851
そうそうあることではないと思いますが、このあたりを意識する場合、Firebase Authenticationで何か対応されていることはありますでしょうか
回答2件
あなたの回答
tips
プレビュー