删除X-Powered-By

Cas*_*tor 131 php http-headers

  1. 如何在PHP中删除X-Powered-By标头?我在Apache服务器上,我使用的是PHP 5.21.我不能在php中使用header_remove函数,因为5.21不支持它.我使用Header unset X-Powered-By,它在我的本地机器上工作,但不在我的生产服务器上.

  2. 如果php不支持ver <5.3的header_remove(),还有替代方法吗?

Pek*_*ica 225

我认为这是由PHP.ini中expose_php设置控制的:

expose_php = off
Run Code Online (Sandbox Code Playgroud)

决定PHP是否可以公开它安装在服务器上的事实(例如,通过将其签名添加到Web服务器头).它无论如何都不是安全威胁,但它可以确定您是否在服务器上使用PHP.

没有直接的安全风险,但正如David C所指出的那样,暴露一个过时的(可能是易受攻击的)PHP版本可能会邀请人们尝试攻击它.

  • "无论如何都不是安全威胁".对于在托管服务器上运行的旧版本的php,这可能是不正确的.我听说黑客可以利用过去版本中记录良好的"漏洞".最好隐藏这个事实...... (27认同)
  • "完全最新"是一个误报imo.最好完全禁用这些信息.昨天发布的版本可能已经存在暴露的威胁,并且取决于升级周期的积极程度,可能会持续一段时间.最好让他们完全猜测.我尽可能地隐藏了包括nginx版本的内容. (13认同)
  • 您可以而且应该有目的地报告X-Powered-By标头的错误值.例如,如果您正在运行PHP,则可以发送X-Powered-By:ASP.NET标头,以减慢攻击者对Web服务器上的软件配置的攻击速度.发送你的攻击者进行疯狂追逐以减慢他们的扫描速度. (5认同)
  • @David,他的意思是它不会**增加**您已经面临的安全威胁。 (3认同)
  • @Pacerier,当然它增加了安全威胁.黑客扫描1000个寻找简单猎物的网站...在旧版本上使用此标题意味着服务器现在在以前被忽略时被定位.它以直接的方式增加了安全威胁.即使保持最新状态,它也可以在一个简短的时间窗口中添加威胁,其中有一个尚未应用的更新. (2认同)

Pep*_*per 71

header_remove("X-Powered-By");
Run Code Online (Sandbox Code Playgroud)

https://secure.php.net/manual/en/function.header-remove.php

  • (PHP 5> = 5.3.0) (2认同)
  • 此解决方案适用于 php,`expose_php = off` 不适用于 .htaccess 或 php 文件。 (2认同)

Gum*_*mbo 49

如果你不能禁用expose_php指令来静音PHP的健谈(需要访问php.ini),你可以使用Apache的Header指令删除头字段:

Header unset X-Powered-By
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于我的生产服务器.它虽然在我的本地机器上工作.关于为什么会发生这种情况的任何想法? (2认同)

luc*_*nov 22

if (function_exists('header_remove')) {
    header_remove('X-Powered-By'); // PHP 5.3+
} else {
    @ini_set('expose_php', 'off');
}
Run Code Online (Sandbox Code Playgroud)


Ars*_*nko 13

如果您有权访问php.ini,请设置expose_php = Off.

  • 好吧,我从PHP代码中得到了这个.标题("X-Powered-By:"); 将X-Powered-By标头设置为空删除它.谢谢大家的时间和建议. (3认同)

Dan*_*ure 8

尝试在发送标头之前添加 header() 调用,例如:

header('X-Powered-By: Our company\'s development team');
Run Code Online (Sandbox Code Playgroud)

无论 php.ini 中的 hide_php 设置如何


小智 6

如果您使用 FastCGI 尝试:

fastcgi_hide_header X-Powered-By;
Run Code Online (Sandbox Code Playgroud)