CakePHPでのセッションタイムアウトの時間設定の方法

シェアする

フリーランスエンジニアの収入例を見てみる→ フリーエンジニアの案件なら、レバテックフリーランス

一つのPCを複数人で使用していたりしたりするので、セッションタイムアウトの時間の設定というのはセキュリティ的に考えないといけないことだと思います。

今回の記事では、CakePHPでのセッションタイムアウトを設定する方法を紹介します。

CakePHP 3系の場合のセッションタイムアウトの設定

CakePHP 3系では、”config/app.php”にセッションタイムアウトの時間を設定することが出来ます。
CakePHP 3系では、分単位でセッションタイムアウトの時間を設定することが出来ます。

config/app.phpの設定方法
'Session' => [
    'defaults' => 'php',        
    'timeout'=>24*60//in minutes
],

CakePHP 3系では、上記のようにconfig/app.phpに上記のように記載することで、セッションタイムアウトの時間を設定することが出来ます。
上記の場合では、セッションタイムアウトの時間を24時間と設定しています。

CakePHP 2系の場合のセッションタイムアウトの設定

CakePHP 2系の場合は、”Config/core.php”でセッションタイムアウトの時間を設定することが出来ます。
CakePHP 2系の場合は、秒単位でセッションタイムアウトの時間を設定します。

Configure::write('Session', array(
    'defaults' => 'php',
    'timeout' => 24*60*60 //increase time in seconds
));

この場合も24時間でセッションタイムアウトの時間を設定しています。

CakePHP 1系の場合のセッションタイムアウトの設定

CakePHP 1系の場合は、”app/config/core.php”でセッションタイムアウトの時間を設定します。

Configure::write('Session.timeout', '1500');
Configure::write('Security.level', 'low');

CakePHP 1系の場合、Session.timeoutだけでセッションタイムアウトの時間を設定するのではなく、Security.levelに応じて、セッションタイムアウトの時間が変わります。Security.levelは、『high』『medium』『low』となり、上記の場合だと、Session.timeoutが1500でSecurity.levelがlowなので、1500×300で45000秒ってことになりますかね。だいたい半日くらい。highだと×10秒でmediumだと×100秒になります。

公式サイトにセッションの様々な設定について記載されています。
セッション周りで色々と調べたいことがある方は、公式サイトのセッション関係のサイトを覗いてみるのをお勧めします。

=>セッション(CakePHP3.0系)
=>セッション(CakePHP2.0系)
=>セッション(CakePHP1.3系)
=>セッション(CakePHP1.2系)

[参考]
How to increase cakephp Auth component session expire time