ユーザーがphpinfo()を使用して環境変数に格納されているプライベートデータを誤って公開しないようにする必要があります。 phpinfoでレンダリングされたセクションを禁止するようにApacheまたはphp.iniを構成する方法はありますか?
phpinfo()
が表示する情報は、少しだけか、まったくありません。表示する情報を制限するようにphpinfo()
に指示できますが、関数を正しく呼び出すにはユーザーを信頼する必要があります。
disable_functions
ファイルのphp.ini
ディレクティブを使用して、関数を完全に無効にすることができます。
http://www.php.net/manual/en/ini.core.php#ini.disable-functions
例えば:
disable_functions = phpinfo
冒険心がある場合は、PHPソースを取得し、環境変数をレンダリングするビットをハックアウトしてから、再コンパイルできます。たとえば、PHP 5.3 .6関連するコードは、/ext/standard/info.c
の950行目あたりにあります。
if (flag & PHP_INFO_ENVIRONMENT) {
SECTION("Environment");
php_info_print_table_start();
php_info_print_table_header(2, "Variable", "Value");
for (env=environ; env!=NULL && *env !=NULL; env++) {
tmp1 = estrdup(*env);
if (!(tmp2=strchr(tmp1,'='))) { /* malformed entry? */
efree(tmp1);
continue;
}
*tmp2 = 0;
tmp2++;
php_info_print_table_row(2, tmp1, tmp2);
efree(tmp1);
}
php_info_print_table_end();
}