怎么隐藏 WordPress 版本号防止被扫描工具识别?

文章导读
隐藏 WordPress 版本号是基础安全加固动作,推荐通过主题 functions.php 添加代码或使用安全插件实现,适合所有不希望暴露 CMS 特征的站点。
📋 目录
  1. 代码实现版
  2. 为什么要隐藏版本号
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

隐藏 WordPress 版本号是基础安全加固动作,推荐通过主题 functions.php 添加代码或使用安全插件实现,适合所有不希望暴露 CMS 特征的站点。

先说结论:版本号暴露会让攻击者快速匹配已知漏洞,建议优先通过代码过滤生成器信息,并清理根目录敏感文件。

  • 先判断:查看网页源代码和 RSS feed 是否包含 version 信息。
  • 优先做:在主题 functions.php 中添加过滤代码,删除 readme.html 等文件。
  • 再验证:更新版本后重新检查,确保文件未被还原。

代码实现版

操作前警告:直接修改 functions.php 若出现语法错误会导致网站白屏瘫痪。请务必先备份全站文件及数据库,建议通过 FTP 编辑或使用子主题。

将以下代码放入当前主题(最好是子主题)的 functions.php 末尾:

remove_action('wp_head', 'wp_generator');
add_filter('the_generator', '__return_empty_string');

为什么要隐藏版本号

WordPress 默认会在网页头部 meta 标签、RSS 订阅源以及部分静态资源链接中输出版本号。这相当于向外界公开了系统的“身份证”,攻击者可以利用扫描工具获取版本号后,查询漏洞数据库匹配已知漏洞。注意:隐藏版本号属于“安全隐匿”(Security by Obscurity),不能替代核心漏洞修复,仍需保持 WordPress 核心及时更新。

分步处理

1. 操作前备份

通过主机控制面板或 FTP 工具,下载 wp-content 目录及数据库 SQL 文件。若修改代码导致网站无法访问,可立即还原。

2. 建议使用子主题

直接修改父主题文件会在主题更新时被覆盖。建议创建子主题,将代码放入子主题的 functions.php 中。若不便创建子主题,请确保关闭该主题的自动更新功能。

3. 代码过滤版本信息

通过 FTP 或文件管理器进入网站根目录,导航至 wp-content/themes/当前主题目录。找到 functions.php 文件,在末尾添加过滤代码。保存后,系统不再在 HTML 头部输出 generator 标签。

怎么隐藏 WordPress 版本号防止被扫描工具识别?

4. 清理根目录敏感文件

通过 FTP 或文件管理器进入网站根目录,删除以下文件:

  • readme.html:包含版本号和安装信息。
  • wp-config-sample.php:配置示例文件。
  • wp-admin/install.php:安装脚本,初始化后无需保留。

注意:每次 WordPress 核心升级后,readme.html 可能会被重新生成,需要养成升级后检查的习惯。

5. 使用安全插件(可选)

如果不方便修改代码,可以使用安全增强类插件,如 WP Hide & Security Enhancer。这类插件通过 URL 重写和过滤器隐藏核心文件路径和版本指纹,无需手动修改文件。

怎么验证是否生效

1. 检查网页源代码

在网站首页右键选择“查看网页源代码”,搜索关键词 generator 或 version。如果找不到包含 WordPress 版本号的 meta 标签,说明头部隐藏成功。

2. 检查 RSS 订阅

访问网站的 feed 地址(通常是 /feed/),查看源码中是否包含 version 信息。部分方法只隐藏了头部,未隐藏 RSS,需确保代码中包含了 the_generator 过滤器。

怎么隐藏 WordPress 版本号防止被扫描工具识别?

3. 检查敏感文件

在浏览器中访问 域名/readme.html 和 域名/wp-config-sample.php,确认返回 404 或无法访问。

常见坑

1. 升级后文件还原

WordPress 每次核心更新都会重新生成 readme.html 等文件。建议在每次更新后再次检查根目录,或通过.htaccess 禁止访问特定文件。

2. 只隐藏了头部

有些教程只建议删除 header.php 中的代码,这不够完整。黑客可以通过 RSS Feed 获取版本号,必须同时过滤 the_generator 钩子。

3. 忽略核心更新

隐藏版本号不代表系统安全。切勿因为隐藏了版本号就忽略 WordPress 核心和插件的安全更新,这会导致实际漏洞未被修复。

4. 插件冲突

使用安全插件隐藏路径时,可能会影响某些依赖默认路径的功能。修改前建议在测试环境验证,或确保插件支持 URL 重写技术。

参考来源

  • WordPress Codex - Security Hardening
  • WPBeginner - How to Hide WordPress Version Number
  • OWASP - Security by Obscurity Guidelines
  • WP Hide & Security Enhancer - Plugin Documentation