戻る

セッション名を変更する

PHPSESSID、session_name()関数

セッション管理されている情報は、Webサーバ上では「8867c14b744c246b8a581a385110374b」のようなランダムな長いファイル名で管理されています。この名前は「セッションID」と呼ばれ、デフォルトではPHPが管理する$_COOKIEスーパーグローバル変数の「PHPSESSID」というインデックス名でその値を取得できます。

例:

echo $_COOKIE["PHPSESSID"];
または echo session_id(); ← session_id()関数を使った場合

この変数名(=セッション名)は、php.iniの「session.name」という項目で設定されています。この変数名はphp.ini上で変更することもできますが、session_name()関数によって、PHPスクリプト上で変更することも可能です。一般的に「PHPSESSID」はよく知られているので、任意の名前に変更することによって、セキュリティを高めることができます。

session_name()関数の引数に任意の名前(半角アルファベット)を指定することで、デフォルトの「PHPSESSID」を他の名前に変更できます。また、引数を省略してこの関数を呼び出すと、返り値として現在のセッション名を得ることができます。

<?php
header("Content-type: text/html; charset=utf-8");

//セッションを開始
session_start();

//現在のセッション名を表示
echo "【現在のセッション名】<br>";
echo session_name() . "<br><br>";

//セッション名を変更
session_name("ORIGINALSESSION");

//新しいセッション名を表示
echo "新しいセッション名<br>";
echo session_name() . "<br><br>";
?>

inserted by FC2 system