12-1 セキュリティーを考慮したphp.iniの構成 [PHPセキュリティー]
PHPセキュリティ
allow_url_fopen
このディレクティブを on にすると、リモートファイルをローカルファイルのようにインクルードできるようになります。必要でない限り off にするべきでしょう。
session.name
このディレクティブではセッション名を指定できます。これは、例えばクッキーに格納される場合に使用される名前です。通常は PHPSESSID となっています。予測し難い名前に変更しましょう。現在のセッション名は、session_name() で確認できます。
disable_functions
このディレクティブを使用すると、セキュリティーの観点から、危険な関数を使用できないようにします。
display_errors
このディレクティブでは、PHPのエラーの有無を指定します。開発者がPHPのエラー内容を随時確認することは非常に大切なことですが、エラー内容が一般へ公開されないようにしなければなりません。
以下のようにPHPのディレクティブを設定して、PHPエラーを開発者だけが確認できるようにしましょう。
以下のようにPHPのディレクティブを設定して、PHPエラーを開発者だけが確認できるようにしましょう。
1 2 3 4 | display_errors = Off error_reporting = E_ALL | E_STRICT log_errors = On error_log = /home/www/log/phperrorlog.txt |
E_ALL | E_STRICT を指定すると、初期化されていない変数のエラーも報告します。phperrorlog.txtファイルのパーミッションは書き込み可能にする。
iniファイルが設定できない場合の実装の例
1 2 3 4 5 6 | <?php ini_set('error_reporting', E_ALL | E_STRICT); ini_set('display_errors', 'Off'); ini_set('log_errors', 'On'); ini_set('error_log','/home/www/log/phperrorlog.txt'); ?> |
enable_dl
このディレクティブは、Apacheモジュール版のPHPを使用した場合にのみ 有用です。PHPの動的ロード拡張機能を dl()で 仮想サーバー毎またはディレクトリ毎にオンまたはオフに変更することが できます。
このディレクティブは非推奨です。
このディレクティブは非推奨です。
magic_quotes_gpc
このディレクティブを on にすると、'(シングルクオート)、” (ダブルクオート)、\(バックスラッシュ) 、NULL には全て自動的に バックスラッシュでエスケープ処理が行われます。
エスケープの対象は、GPC(Get/Post/Cookie) と指定します。
※この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。
エスケープの対象は、GPC(Get/Post/Cookie) と指定します。
※この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。
register_globals
このディレクティブでは、EGPCS(Environment, GET, POST, Cookie, Server)変数を グローバル変数として登録するかどうかを指定します。GETやPOSTなどがグローバル変数として登録されてしまうので、開発者を混乱させることがあります。無効にすべきです。
この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。
この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。
safe_mode
このディレクティブはセーフモードの有効の有無を指定します。
この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。
この機能は PHP 5.3.0 で 非推奨となり、 PHP 5.4.0 で削除されました。
open_basedir
PHPが開くことのできるファイルを特定のディレクトリに限定します。
このディレクティブを指定することで、include や require 等のファイルシステム関数を狙った攻撃への防護策になります。設定する値はプレフィクスで、特定のディレクトリを指示する場合は、最後にスラッシュを付けて下さい。
Open_basedir = /path/to/
このディレクティブを指定することで、include や require 等のファイルシステム関数を狙った攻撃への防護策になります。設定する値はプレフィクスで、特定のディレクトリを指示する場合は、最後にスラッシュを付けて下さい。
Open_basedir = /path/to/
php 5.3.xで非推奨のディレクティブ
define_syslog_variables
register_globals
register_long_arrays
safe_mode
magic_quotes_gpc
magic_quotes_runtime
magic_quotes_sybase
register_globals
register_long_arrays
safe_mode
magic_quotes_gpc
magic_quotes_runtime
magic_quotes_sybase
タグ(=記事関連ワード)
タグ: PHPセキュリティー
日付
投稿日:2017年8月6日
最終更新日:2017年08月09日
最終更新日:2017年08月09日
このカテゴリの他のページ
この記事へのコメント
トラックバックurl
https://wepicks.net/phpsecurity-directive/trackback/