フリーPHPスクリプト配布サイト。
PHP Labo で配布しているプログラムは、.htaccessファイルで色々な設定を行っています。.htaccessは、Apacheなどのサーバーソフトで利用できる、サーバーの動作設定を行うファイルです。サーバー上の任意の場所に .htaccess
という名前でファイルを作成し、色々な設定を記述することができます。
各配布プログラムに付属している.htaccessの内容は以下のとおりです。
Options -Indexes
DirectoryIndex index.php
<Files ~ "\.(db|log|ini)$">
Deny from all
</Files>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1
</IfModule>
php_flag register_globals Off
php_flag magic_quotes_gpc Off
php_value default_charset UTF-8
php_value mbstring.input_encoding pass
php_value mbstring.internal_encoding UTF-8
php_value mbstring.output_encoding pass
php_value mbstring.language Japanese
php_value mbstring.substitute_character none
php_flag session.use_trans_sid Off
php_flag session.use_cookies On
php_flag session.use_only_cookies On
php_flag session.auto_start Off
php_value error_reporting 039
php_flag display_errors Off
php_flag display_startup_errors Off
php_flag log_errors On
php_value error_log "./error.log"
基本的には編集せずにそのまま利用すればOKですが、mod_rewriteを利用する場合、エラーログファイルへのパスを修正しておくことを推奨します。
Options -Indexes
ファイル名を省略してディレクトリにアクセスした場合、index.html
などが無くてもファイル一覧を表示しません。(不正アクセス対策。)
DirectoryIndex index.php
ファイル名を省略してディレクトリにアクセスした場合、index.php
があればそのファイルを表示します。
<Files ~ "\.(db|log|ini)$">
Deny from all
</Files>
拡張子が db
・log
・ini
のファイルへの直接アクセスを禁止します。(不正アクセス対策。)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1
</IfModule>
http://www.example.com/index.php/view/5
のようなURLに、http://www.example.com/view/5
のようなURLでアクセスできるようにします。
php_flag register_globals Off
想定外の変数に値が格納されないようにします。(変数汚染対策。)
php_flag magic_quotes_gpc Off
入力データが自動的にエスケープされないようにします。エスケープ処理は、必要に応じて各プログラム側で行っています。
php_value default_charset UTF-8
php_value mbstring.input_encoding pass
php_value mbstring.internal_encoding UTF-8
php_value mbstring.output_encoding pass
php_value mbstring.language Japanese
php_value mbstring.substitute_character none
デフォルトの文字コードをUTF-8に設定します。(文字化け対策&UTF-7 XSS 対策。)
php_flag session.use_trans_sid Off
php_flag session.use_cookies On
php_flag session.use_only_cookies On
php_flag session.auto_start Off
セッションをCookieでのみ扱うようにします。(セッションハイジャック対策。)
php_value error_reporting 039
php_flag display_errors Off
php_flag display_startup_errors Off
php_flag log_errors On
php_value error_log "./error.log"
PHPプログラムのエラー情報をブラウザに表示せず、プログラムと同じディレクトリにある error.log
へ出力するように設定します。(パス情報や脆弱性情報の漏洩対策。)
なお、.htaccessではエラーレベルを定数で指定できないので、上のように数値で指定します。以下は定数と数値の比較です。必要ならば、表を参考にしてエラーレベルを変更してください。
定数表現 | 数値表現 |
---|---|
E_ALL |
2047 |
E_ALL & ~E_NOTICE |
039 |
E_ALL | E_STRICT |
4095 |