セッションを利用すると、サーバ側に情報を保存させることができます。セッションはCookieの技術を利用して成り立っています。
目次
セッションID
セッションを利用すると、セッションIDと呼ばれる値がCookieに保存されます。クライアントからサーバに再アクセスした際、サーバ側ではこのセッションIDを利用してセッション情報にアクセスします。
セッションIDの名前はデフォルトでPHPSESSID
です。PHPの設定ファイル(php.ini)で設定を変えることもできます。
; Name of the session (used as cookie name).
; http://php.net/session.name
session.name=PHPSESSID
セッションの利用
セッションの開始
session_start関数
によりセッションは開始されます。
session_start();
$_SESSION['waku'] = 'XXXXX';
はじめてアクセスしたクライアントによってsession_start
が実行されると、クライアント側ではセッションIDがCookieに保存されます。
サーバ側ではセッションファイルが生成されます。ファイル名は、CookieでセッションIDに設定した値と同じになります。
セッションファイルが保存されるパスはPHPの設定ファイル(php.ini)で設定できます。
session.save_path="C:\xampp\tmp"
session_start関数
を実行する前にsession_save_path関数
で設定することもできます。
セッションIDの再生成
セッション固定攻撃に備えて認証後にセッションIDを再生成する必要があります。セッションIDの再生成は、session_regenerate_id関数
で行います。
session_regenerate_id(true)
引数にtrueを設定すると古いセッションが削除されます。
この他にもセッションハイジャック対策として、SSLの暗号化通信以外はCookieを使えなくするなどの対策も必要です。