LoginSignup
9
9

More than 5 years have passed since last update.

CakePHPでsession_regenerate_id(true)を呼ぶ

Posted at

環境

  • PHP 5.3.x
  • CakePHP 2.4.7

CakeSession::renew()

セッションアダプション、セッションフィクセイションの脆弱性対策として、ログイン後session_regenerate_id(true)でセッションIDを付け直すことが推奨されています。

CakePHPのフレームワークにそのような機能がないかと調べた結果、lib/Cake/Model/Datasource/CakeSession.phpにsession_regenerate_id(true)を呼んでいるrenewメソッドがあったので、これを利用することにしました。

SomeController.php
CakeSession::renew();

core.phpでSession.autoRegenerateオプション(CakeSession::$requestCountdownがリジェネレートリクエスト間隔)を有効にしてもいいですが、定期的に変更しなくても、ログイン時だけでいいので、この方法を使っています。

これでログイン時にセッションIDを付け直すことができました。今のところ副作用はないようですが、様子見です。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9