結局セッションIDやトークンはLocalStorageとCookieのどちらで持てば良いのか

以下の通り、OWASPによるとLocal Storage にセッションIDを保存するのはやめときなさいと言っているので、私はそれに従おうと思う。

https://cheatsheetseries.owasp.org/cheatsheets/HTML5_Security_Cheat_Sheet.html#local-storage

Do not store session identifiers in local storage as the data is always accessible by JavaScript. Cookies can mitigate this risk using the httpOnly flag.

セッションID自体を盗めなくても、XSSによる攻撃は可能だから、Local Storageに保存しても結局変わらないのでは?という指摘も散見される。しかし私見を述べるならば、それがセッションID自体を盗む攻撃を防げなくてもいい理由にはならないと思っている。

適切に設定されたCookieの値をJavaScriptで取得することは出来ないが、Local Storageの値はJavaScriptで取得することができる。個人的には、適切に設定するという前提で、Cookieに保存するようにしたい。