Tim*_*ord 4 php environment-variables php.ini apache-2.2
我需要防止用户使用 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
Run Code Online (Sandbox Code Playgroud)
如果你喜欢冒险,你可以获取 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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3267 次 |
| 最近记录: |