servertokens prod 必须设置,否则响应头仍泄露版本信息;仅设 serversignature off 不足,需在 httpd.conf 中显式启用 servertokens prod 和 serversignature off,并禁用目录浏览与 server-status。

ServerTokens Prod 必须设,否则响应头照旧泄露版本
只关 ServerSignature Off 不够,ServerTokens 才控制 HTTP 响应头里的 Server 字段。默认是 Full,会返回类似 Server: Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.0 的完整字符串。改成 Prod 后,响应头只剩 Server: Apache —— 这是唯一能真正压制响应头暴露的设置。
常见错误包括:
- 只改了
ServerSignature Off,没动ServerTokens,curl -I 一看还是满屏版本号 - 在
<virtualhost></virtualhost>块里又写了ServerTokens Full,覆盖了全局配置 - 编辑了
httpd-vhosts.conf却没碰主配置,改等于白改
配置文件路径别找错:Windows 和 Linux/macOS 路径不同
XAMPP 的 Apache 主配置文件位置是固定的,不能靠控制面板“Config”按钮打开——它常调用缓存副本,尤其 VS Code 或 Notepad++ 用户容易编辑错文件。
务必手动定位并用管理员权限打开:
- Windows:
C:\xampp\apache\conf\httpd.conf - Linux/macOS:
/opt/lampp/etc/httpd.conf
找到这两行(通常在文件末尾附近),确保它们被显式写入且未被注释:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
ServerSignature Off ServerTokens Prod
如果这两行不在 httpd.conf 里,检查是否启用了 Include conf/extra/httpd-default.conf —— 很多 XAMPP 版本把这俩指令默认放在 httpd-default.conf 中,但该文件默认是被注释掉的。
验证必须做三件事,少一个都不算生效
改完配置、重启 Apache 后,不能只看浏览器 404 页面底部有没有文字。攻击者根本不用点网页,直接发请求就能拿到信息。必须逐项确认:
- 运行
curl -I http://localhost,检查响应头里Server:是否只剩Apache,不含任何斜杠、括号或模块名 - 访问一个不存在的路径如
http://localhost/xyz,查看 HTML 错误页底部是否完全不出现 Apache 版本字样 - 执行
httpd.exe -t(Windows)或httpd -t(Linux/macOS),确保配置语法无误;拼错单词或漏分号会导致 Apache 启动失败
额外暴露点:目录浏览和 server-status 也得关
版本号只是第一眼可见的信息,XAMPP 默认还开着两个高危功能:
- 目录浏览:若某目录下没有
index.html,Apache 会列出所有文件。在httpd.conf中搜索Options Indexes FollowSymLinks,改成Options -Indexes FollowSymLinks(前面加减号表示禁用) - server-status 接口:默认可能启用,暴露服务器实时状态。搜索
<location></location>块,把里面的SetHandler server-status行整行注释掉
这些配置分散在不同位置,容易漏掉。真正的安全不是关掉一个字段,而是让整个 Apache 暴露面缩到最小——路径、权限、配置层级,三者对不齐,关了也白关。










