是否可以从 phpinfo 混淆或删除环境变量?
如果不是,是显示 phpinfo 函数的唯一选择吗?
进一步考虑,有人可以轻松地 print_r($_SERVER) 并获得凭据。对此有什么解决方案?
澄清 这是关于 Apache 环境变量的。
是否可以从 phpinfo 混淆或删除环境变量?
如果不是,是显示 phpinfo 函数的唯一选择吗?
进一步考虑,有人可以轻松地 print_r($_SERVER) 并获得凭据。对此有什么解决方案?
澄清 这是关于 Apache 环境变量的。
Suhosin补丁执行此操作:
忽略具有以下名称的 GET、POST、COOKIE 变量:GLOBALS、_COOKIE、_ENV、_FILES、_GET、_POST、_REQUEST _SERVER、_SESSION、HTTP_COOKIE_VARS、HTTP_ENV_VARS HTTP_GET_VARS、HTTP_POST_VARS、HTTP_POST_FILES HTTP_RAW_POST_DATA、HTTP_SERVER_VARS、HTTP_SESSION_VARS
除此之外,我不知道有一种方法可以干净地隐藏这些变量。
也就是说,首先它不应该是真正必要的 - 外部访问者不应该能够运行phpinfo()
,或转储任意变量。
您可以使用该flags
参数来确定显示/省略哪些部分。
环境变量是 value 16
。最大值为127
; 所以只省略环境变量,发送 value 111
。
显示一切
<?php phpinfo(); ?>
<?php phpinfo(127); ?>
<?php phpinfo(-1); ?>
<?php phpinfo(INFO_ALL); ?>
<?php phpinfo(INFO_GENERAL | INFO_CREDITS | INFO_CONFIGURATION | INFO_MODULES | INFO_ENVIRONMENT | INFO_VARIABLES | INFO_LICENSE); ?>
仅显示环境变量
<?php phpinfo(16); ?>
<?php phpinfo(INFO_ENVIRONMENT); ?>
显示除环境变量外的所有内容
<?php phpinfo(111); ?>
<?php phpinfo(INFO_ALL & ~INFO_ENVIRONMENT); ?>
Name (constant) | Value | Description
INFO_GENERAL | 1 | The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS | 2 | PHP Credits. See also phpcredits().
INFO_CONFIGURATION | 4 | Current Local and Master values for PHP directives. See also ini_get().
INFO_MODULES | 8 | Loaded modules and their respective settings. See also get_loaded_extensions().
INFO_ENVIRONMENT | 16 | Environment Variable information that's also available in $_ENV.
INFO_VARIABLES | 32 | Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | PHP License information. See also the » license FAQ.
INFO_ALL | -1 | Shows all of the above.
文档可以在这里找到