以前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アプリを実行する場合などで有効的だ。