我如何在 PHP 中删除 X-Powered-By 头信息?我的服务器是 Apache,并且我使用的是 PHP 5.21 版本。由于它不支持 5.21 版本,所以我无法使用 PHP 的 header_remove 函数。我尝试了 Header unset X-Powered-By,在本地机器上可以运行,但在生产服务器上无法运行。
如果 PHP 版本低于 5.3 不支持 header_remove(),有没有替代方法?
我如何在 PHP 中删除 X-Powered-By 头信息?我的服务器是 Apache,并且我使用的是 PHP 5.21 版本。由于它不支持 5.21 版本,所以我无法使用 PHP 的 header_remove 函数。我尝试了 Header unset X-Powered-By,在本地机器上可以运行,但在生产服务器上无法运行。
如果 PHP 版本低于 5.3 不支持 header_remove(),有没有替代方法?
我认为这是由PHP.ini中的expose_php
设置控制的:
expose_php = off
该选项决定PHP是否可以展示其已安装在服务器上(例如通过添加其签名到Web服务器标头)。它不会对安全造成任何威胁,但它使得能够确定您的服务器上是否使用了PHP。
正如David C所指出的那样,直接暴露过时(有可能存在漏洞)的PHP版本可能会引诱攻击者试图攻击它,这是一个潜在的安全风险。
header_remove("X-Powered-By");
expose_php = off
在 .htaccess 和 PHP 文件中均不起作用。 - jcubic如果您无法禁用expose_php指令来阻止 PHP 的冗余输出(需要访问 php.ini),您可以使用Apache 的Header
指令来删除头字段:
Header unset X-Powered-By
if (function_exists('header_remove')) {
header_remove('X-Powered-By'); // PHP 5.3+
} else {
@ini_set('expose_php', 'off');
}
expose_php = Off
设置为关闭。在发送头部之前,尝试添加一个header()调用,例如:
header('X-Powered-By: Our company\'s development team');
fastcgi_hide_header X-Powered-By;
Header always unset X-Powered-By
Header unset X-Powered-By
header("Server:");
Server
头是由Apache或nGinx添加的,因此无法从PHP更改它。此外,OP要求删除X-Powered-By
。 - Binar Web