隐藏 PHP 的 X-Powered-By 标头

2022-08-30 10:37:24

我知道在PHP中,它发送标头以具有PHP版本。X-Powered-By

我也知道通过附加一些校验和,你可以访问PHP的信用,和一些随机图像(更多信息在这里)。

我也知道在php中.ini你可以转动.expose_php = off

但这是我在几个网站上做过的事情,那就是使用

header('X-Powered-By: Alex');

当我查看标题时,我可以看到它现在是“Alex”而不是PHP版本。我的问题是,这会先发送以前的PHP标头(在它到达我的之前),并且任何嗅探器程序都可以检测到它吗?还是PHP在发送回浏览器之前“收集”了标头?header()

顺便说一句,这不是为了晦涩难懂的安全性,只是好奇头文件在PHP中是如何工作的。


答案 1

你可以在你的php中设置.ini如果你不希望它发送X-Powered-By标头。expose_php = Off

PHP首先编译所有内容(包括哪些标头具有哪些值),然后开始输出,反之亦然。

PHP也可以用自己的复活节彩蛋来检测,你可以在这里阅读关于这个主题的信息:PHP复活节彩蛋


答案 2

请参阅 Apache 提示和技巧:隐藏 PHP 版本 (X-Powered-By)

起伏...正如我们所看到的,PHP添加了自己的横幅:

X-Powered-By: PHP/5.1.2-1+b1…

让我们看看如何禁用它。为了防止PHP暴露它安装在服务器上的事实,通过将其签名添加到Web服务器标头中,我们需要在php中找到.ini变量并将其转动 。expose_phpoff

默认情况下设置为开。expose_php

在你的 php.ini(基于你的 Linux 发行版,这可以在不同的地方找到,比如 /etc/php.ini、/etc/php5/apache2/php.ini 等)找到包含的行并将其设置为 Off:expose_php On

expose_php = Off

进行此更改后,PHP 将不再将其签名添加到 Web 服务器标头。这样做不会使您的服务器更安全...它只会阻止远程主机轻松看到系统上已安装PHP以及您正在运行的版本。


推荐