しがないエンジニア頑張る

弱々だけどこの界隈でなんとか食らいついていきたい人

Q: アクセストークンはどこに保存したらいいですか?

A:保存する場所はどこでもいいです。完。

N番煎じの話題

この話題世の中に無限にありますよね。
ローカルストレージは危険なのでやめましょう!!!
ってのが無限に出てくるし、よく言われるわけですよ。
セキュリティに特別明るいわけじゃないですが(防衛魔法)、私もN番目のポエマーとして電子チラシの裏に書き込むことにしました。

XSSの前には人類は無力なんだよ

「アクセストークンをローカルストレージに保管するのはやめてください!」
強い口調で書かれている記事は無限にあるが、内容はXSSに対して無防備だからという内容。
確かに。わかる。でも人類はXSSされたら無力なので、どこにおこうと情報は漏洩します。
故に、どこでもいいんじゃね?って思うわけですよ。

解決策としてのCookie

「ローカルストレージに保管するのはやめてください!」マンが提示するのはCookieに入れましょう!ですね。
その他もありますが。大抵はこれ。
さらに、セキュアにするためにHttpOnlyとSecurityをつけましょう!までがセット。
確かに、アクセストークンは盗まれないかもだけど、XSSの前に無力なのは変わっていないので解決策じゃなくね?と思うわけですよ。
CSRF攻撃の可能性を広げているけど奴は四天王の中では最弱なのでヨシ。

XSSへの無力さ

ローカルストレージへ保存した場合、XSSによりアクセストークンがローカルストレージから取得されておしまい。
Cookieへ保存した場合した場合、XSSによりそのままリクエストされて情報が取得されておしまい。もちろんSameSiteも意味ないぞ。
なので、そもそもXSS対策頑張りましょうね!なんですよね。

Service Workerという選択肢

最近よく聞きますよね。
DOMと切り離されてるし、Cookieも使わなくて済む!!でもやはりXSSの前には無力。
やっぱり、どこでもいいんだね。

参考

Building secure web apps using Web Workers | Mercari Engineering