Мне нужно предотвратить случайное раскрытие пользователями личных данных, хранящихся в переменных среды, с помощью phpinfo (). Есть ли способ настроить apache или php.ini, чтобы запретить отображение разделов с помощью phpinfo?
Информация, которая 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();
}