Laravel 5 の Remember Me 機能について
※当サイトにはプロモーションが含まれています。
公開日:
更新日:
![]()
Laravel 5 では Remember Meの機能(オートログイン)がデフォルトで実装されています。この機能の安全性を調査した時のメモです。
- ログイン時、remember me というチェックボックスにチェックを入れてログインすると、”remember_xxxxxxxx” という名前のクッキーが発行され、このクッキーさえあればログインできるようになる(セッションクッキーがなくても)。
- このクッキーの値は「ユーザーテーブルのidカラム値 + “|” + ユーザーテーブルのremember_tokenカラム値」となっている。
- 但し、クッキーの値は Illuminate\Cookie\Middleware\EncryptCookiesクラスとして実装された Global Middlewareによって暗号化されている。この暗号化には アプリケーションキー(app/config/app.php の key)が使用されている。
- よって、このクッキーの値を偽装して自分でないユーザーとしてログインするには、「アプリケーションキー」「そのユーザーの remember_token カラム値」の2つを入手する必要がある(idカラム値は予想がつく)。
- このまま使っても問題はなさそう。
* Laravel 5.0.28 で確認
こちらにもまとめておきました。→ Laravel 5 でのセキュリティ対策 (PHP) - Secure Code Tips
最終更新日: 2015-5-22
広告