servertokens prod 是唯一能真正压制 http 响应头中版本泄露的设置,因其仅返回“server: apache”,而 minimal、os、full 均暴露主版本号或操作系统,易被 nmap、whatweb 等扫描器精准识别。

ServerTokens Prod 是唯一能真正压制 HTTP 响应头中版本泄露的设置,其他值(Minimal、OS、Full)都会暴露主版本号或操作系统,扫描器一扫就识别出来。
为什么 ServerTokens Prod 是唯一有效选项
ServerTokens 控制的是 Server 响应头的具体内容,不是“关不关”的问题,而是“露多少”的问题:
-
ServerTokens Full→Server: Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.0 -
ServerTokens Minimal→Server: Apache/2.4.52(仍含主版本,nmap -sV 可直接识别) -
ServerTokens OS→Server: Apache/2.4.52 (Ubuntu)(暴露系统,更危险) -
ServerTokens Prod→Server: Apache(仅保留服务名,无版本、无系统、无模块)
别信“Minimal 差不多”——实际测试中,whatweb 和 nmap -sV 对 Minimal 的识别率接近 100%,而 Prod 下基本归为“generic Apache”。
配置文件位置和加载顺序陷阱
XAMPP 默认**不把 ServerTokens 和 ServerSignature 写在 httpd.conf 主文件里**,而是放在 conf/extra/httpd-default.conf 中,并通过 Include 加载。但这个 Include 行常被注释掉:
- Windows 路径:
C:\xampp\apache\conf\extra\httpd-default.conf - Linux/macOS 路径:
/opt/lampp/etc/extra/httpd-default.conf - 检查
httpd.conf中是否存在Include "conf/extra/httpd-default.conf",若被#注释,必须取消 - 如果
httpd-vhosts.conf或某<virtualhost></virtualhost>块里又写了ServerTokens Full,它会覆盖全局设置——必须全局统一
编辑错误文件是 XAMPP 用户最常翻车的原因。用文本编辑器全局搜索 ServerTokens,确认它最终生效的位置。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
ServerSignature Off 只管 HTML 错误页,不管响应头
ServerSignature Off 的作用非常窄:它只移除 404/500 页面底部那行文字(如 “Apache/2.4.52 (Win64) OpenSSL/1.1.1m”),对 curl -I 返回的 HTTP 头完全无效。
- 只设
ServerSignature Off+ 不设ServerTokens Prod→curl -I仍见完整版本串 - 只设
ServerTokens Prod+ 不设ServerSignature Off→ 错误页底部仍显示Apache(虽无版本,但已多余) - 两者必须同时存在,且都在全局上下文(不能写在
<directory></directory>里)
验证时必须分两步:先 curl -I http://localhost 看响应头,再访问 http://localhost/nonexistent 查看 HTML 源码底部是否干净。
彻底移除 Server 头需 mod_headers + Header unset Server
ServerTokens Prod 后仍是 Server: Apache,攻击者仍知你在用 Apache。要真正模糊技术栈,得主动删除该头:
- 确保
mod_headers已启用:LoadModule headers_module modules/mod_headers.so未被注释 - 在
httpd.conf或站点配置中(**不能在<directory></directory>块内**)添加:
<ifmodule mod_headers.c>
Header unset Server
</ifmodule>
若 Apache 版本 unset 可能不生效,改用:
Header set Server ""
注意:该指令对 HTTPS 虚拟主机同样适用,但若前端有 Nginx 或 Cloudflare,它们可能重新注入 Server 头——此时 Apache 配置无效,必须在代理层同步处理。










