php.iniの設定で押さえておくべきこと

かなり今更ですが、まとめてみました。他にも重要な設定があれば足していく予定です。

short_open_tag (Off 推奨)

PHPのスクリプトを記述するには通常、


としますが、この設定をOnにすることで


と記述することが出来ます。しかし、XMLドキュメントでも


のように記述するため、これと混同しないようにOffにすることが推奨されています。

register_globals (Off 推奨)

これがOnになっていると例えば$_GET[‘a’]の値が自動的に変数$aに格納されます。この値はセキュリティ上の問題からOffにすることが推奨されています。

register_globals = Onの弊害

display_errors (開発環境:On , 運用環境:Off 推奨)

この値がOnになっている場合はエラーメッセージを表示し、Offになっていればエラーメッセージを表示しません。

開発環境ではOnにしておき、運用する際にはOffにするのがセオリーのようです。

ちなみにdisplya_errors=Offの状態でエラーを発生させると、画面が真っ白になります。

magic_quotes_gpc(Off 推奨)

この値がOnになっていると、Get/Post/Cookieの下記4つの値に対し、頭に「」を付けてを自動的にエスケープを行います。

これらの文字列はSQLでは特別な記号であり、そのまま値がSQLに渡されてしまうと非常に危険なため、このような処理が施されたようです。しかし、様々な理由によりこの設定はOffにすることが推奨されています。

今更ながらmagic_quotes_gpcの欠点 – T.Teradaの日記

また、レンタルサーバなどでこの設定を自由に変更できない場合の対応については、そふぃさんのサイトが非常に参考になります。

PHPスクリプト講座:マジッククォートの処理 — そふぃのphp入門