今回はPHPでセッション管理をおこなう際に気をつけることの一つとして、CookieにSecure属性を付ける設定方法について紹介する。
Secure属性の必要性
SSL対応(https:)されたサイトでは基本的に設定するべきで、Secure属性のついたCookieは非SSL(http:)サイトには送信されないようになる。
セキュリティ上、特に扱いに気をつけなければならないセッションIDを格納したCookieについては、IPAが発行している「安全なウェブサイトの作り方」でもSecure属性を付与することが推奨されている。
安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構
PHPコード内での設定方法
php.iniファイルでも設定をおこなうことができるが、レンタルサーバーなどではphp.iniを編集できないことが多いので、ここではPHPコード内でSecure属性を設定する方法を紹介する。
<?php
ini_set('session.cookie_secure', 1);
session_start();
ini_set
関数を使い、session.cookie_secure
に1を設定するだけでCookieにSecure属性を付与することができる。
なお、注意点としてこの設定は必ずsession_start
関数の前におこなわなければいけない。
ChromeのデベロッパーツールからApplicationタブを選択して確認すると、以下矢印で示すとおり、Secureの欄にチェックが入っていることが分かる。