Laravel 5 の Remember Me 機能について

Laravel

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

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*