株式会社プロネット

 

WEBシステム開発、ITコンサルティング、自社サービス、教育事業 - これからのビジネスへのIT活用ソリューションをご提案致します。

CakePHPでセキュリティ対策 Cookie編

2017.5.15(Mon) 19:00 | CakePHP | yamamoto

今回はCookieのhttponly属性とsecure属性についてとCakePHPでの設定についてまとめます。
これら以外にも有効期限の設定などをしておくとより安全になります。
Cookieの情報をchromeで以下で確認できます。

  1. Developer Toolsを開く
  2. Applicationタブを選択
  3. 左のStrageのCookiesを開き、URLを選択

 

httponly属性とは

設定されているとJavaScriptから参照することができなくなります。
XSSなどの脆弱性からCookieが盗まれることを防ぐことができます。
 

secure属性とは

設定されているとhttps通信時のみCookieを送信します。
設定されていないとhttps通信時に作成したCookieがHTTPの時にも見ることができてしまいます。
httpのみやhttpとhttpsが混在する時は別の対策が必要ですが、
全てhttps通信の時は設定しておいた方が良いでしょう。
 

CakePHPのCookieComponent

write()を実行する前にそれぞれの属性を有効にします。

$this->Cookie->httpOnly = true; // httponly属性
$this->Cookie->secure = true; // secure属性
$this->Cookie->write('key', $data);

 

CakePHPのSeesionのCookie

Bootstrap.phpやconfなどに以下を記述します。
httponly属性はデフォルトで設定されていました。

Configure::write('Session', array(
'defaults' => 'php',
'ini' => array('session.cookie_secure' => true)
));

 


参考URL:
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/302.html
https://book.cakephp.org/2.0/ja/core-libraries/components/cookie.html
https://book.cakephp.org/2.0/ja/development/sessions.html