1

是否可以从 phpinfo 混淆或删除环境变量?

如果不是,是显示 phpinfo 函数的唯一选择吗?

进一步考虑,有人可以轻松地 print_r($_SERVER) 并获得凭据。对此有什么解决方案?

澄清 这是关于 Apache 环境变量的。

4

2 回答 2

1

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(),或转储任意变量。

于 2011-06-22T21:45:39.297 回答
0

您可以使用该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.

文档可以在这里找到

于 2021-12-13T12:22:29.437 回答