以前PHPにおいて、セッションIDを推測されにくくする設定方法を紹介した。
これはセッションIDを、デフォルトの設定より強度の高い乱数にするもので、攻撃者がセッションIDを推測するのを難しくするためのものだ。
今回は別のセキュリティ対策として、セッションIDと対になるキーであるセッション名を任意の名前に変更する方法を紹介する。
セッション名を変更するメリット
はじめに言っておくと、この施策はそこまでセキュリティ強度を高めるものではない。
デフォルトのセッション名は「PHPSESSID」となっており、これでは何らかの方法でCookieを確認した攻撃者に、簡単にPHPSESSIDがセッションIDを表すものだと分かってしまう。
これを少しでもわかりづらくするために、セッション名を変更することが効果的というわけだ。
php.iniファイルで設定する方法
サーバー設定ごとセッション名を変更したい場合はphp.iniファイルに以下を記述する。
session.name=hogefugapiyo
変更後、Webサーバーを再起動すれば設定は反映される。
PHPファイルで設定する方法
PHPファイルでもセッション名は設定変更可能。
<?php
session_name('hogefugapiyo');
session_start();
この場合、必ずsession_startの前にsession_name関数を用いて設定をおこなう必要がある。
PHPファイル単位でセッション名を変更することができるので、同じサーバーで複数のWebアプリを実行する場合などで有効的だ。