はじめに
本記事は、プログラミング初学者が、学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。
今回の疑問点
今回の疑問点は、
認証トークンの保存先について
です。
devise-token-authを用い、認証機能を実装していた際に保存先について疑問を抱き、それぞれのメリット・デメリットについて調べました。
認証トークン保存先のメリット・デメリット
local storage
メリット
- 実装が簡単
デメリット
- XSS脆弱性があった場合、トークンを簡単に盗むことができる
Cookie
メリット
- HttpOnly属性をtrueにすることでJavaScriptからのCookie操作を無効にできる
デメリット
- 実装に手間がかかる
- HttpOnly属性をtrueにしても完全に安全というわけではない
In-Memory
メリット
- 攻撃が困難
デメリット
- 利便性が低い
- リロードするとログアウトされる
- タブ間でログイン状態が継続されない
認証プラットフォーム(Auth0)
メリット
- 安全性が高い
- 利便性も損なわれない
デメリット
- ユーザーが一定数を超えるとお金がかかる