CakePHPでセッションCookieがセキュアにならなかった。(CakeSessionコンポネント)

CakePHP + AWSのロードバランサーでCookieがセキュアにならなかった件。

CookieComponentの設定では、secure = true;となっています。
ソースコードを追っかけたところ、CakeSessionComponentで、

if (!isset($sessionConfig['ini']['session.cookie_secure']) && env('HTTPS')) {
 $sessionConfig['ini']['session.cookie_secure'] = 1;
 }

となっている所があり設定にかかわらずenv(‘HTTPS’)が空の場合にはセッションCookieがセキュアにならない設定に。

今回はサイト全てhttpsなのでELB以下のAhache(htaccess)でsetEnvしてセットして対応

setEnv HTTPS 'on'

(本当は、X-Forwardedヘッダー参照して ‘on’ or ”(空)にする対応が必要ですが取り急ぎまで)

 

 

コメントを残す

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