こんにちは。今回は PHP でセッション名を変更する方法と、一般的によく設定する php.ini の項目についてまとめてみます。PHP を運用する上で、セキュリティやパフォーマンスを向上させる設定はとても重要です。ぜひ参考にしてみてください。
Contents
1. PHP のセッション名を変更する理由
PHP のデフォルトセッション名は PHPSESSID となっています。これは広く知られている名称であり、悪意あるユーザーに PHP を利用していることを悟られやすくなる可能性があります。
セキュリティ面では “変えることに越したことはない” という位置づけで、以下の方法で簡単に変更できます。
2. セッション名を変更する方法
2-1. php.ini ファイルでの変更
- php.ini ファイルを開く
多くの場合、/etc/php.iniや/etc/php/7.4/apache2/php.iniなどに配置されています。環境に応じて場所が異なるので探してみてください。 session.nameの行を探す
下記のようにデフォルト設定があるはずです。
session.name = PHPSESSID- 希望する名前に変更する
例えば、以下のようにして変更できます。
session.name = MYSESSIDMYSESSID の部分は自由に決めてOKです。変更したらファイルを保存します。
- PHPサービスを再起動
Apache、Nginx、PHP-FPM などを利用している場合は、再起動が必要です。
sudo systemctl restart apache2- (上記は Apache の例です。ご利用のサービスに応じてコマンドを変更してください)
もし php.ini ファイルに session.name の設定が見つからない場合は、新しく追記してください。
2-2. .htaccess ファイルや PHP スクリプト内での変更
.htaccess ファイルでも同様に php_value を使って session.name を変更できます。また、PHP のスクリプト内で ini_set() 関数を使って動的に変更する方法もあります。たとえば以下のようにします。
<?php
// PHPスクリプト内で変更
ini_set('session.name', 'MYSESSID');
session_start();php.ini のコメントアウト方法・記述方法について
1. コメントアウトの方法
php.ini は INI 形式 で書かれています。コメントアウトには ;(セミコロン) を使います。
; これはコメント行です
; memory_limit = 128M上記のように、行頭をセミコロンで始めると、その行は無視されます。
ポイント
- php.ini には “複数行をまとめてコメントアウトする” ための構文はありません。複数行を一括で無効にする場合も、行頭にそれぞれセミコロンを付ける必要があります。
2. 設定の記述方法
2-1. 一般的なディレクティブの記述例
php.ini は 設定項目 = 値 という形式で記述します。たとえば以下のようになります。
memory_limit = 128M
max_execution_time = 30
upload_max_filesize = 2M
post_max_size = 8M2-2. 文字列の囲み方
文字列を指定する場合は、"(ダブルクオーテーション) で囲むことが推奨されています。たとえば、タイムゾーンを設定するときは以下のように書きます。
date.timezone = "Asia/Tokyo"- ダブルクオートで囲むことで、スペースや特殊文字が含まれる文字列を正しく扱うことができます。
- シングルクオート(
'...')でも動作する場合があるものの、公式ドキュメントなどではダブルクオートが一般的に使われています。