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 ”(空)にする対応が必要ですが取り急ぎまで)
コメントを残す