隐藏WordPress版本号主要通过修改主题functions.php文件和删除readme.html文件实现,能减少信息泄露、提升安全性并满足代码整洁需求。具体操作是将移除generator标签和去除CSS/JS文件中ver参数的代码添加到当前子主题的functions.php文件中,并删除根目录下的readme.html文件,从而有效隐藏WordPress版本信息,增强网站防护。

隐藏WordPress版本号主要通过修改主题的
functions.php
readme.html
要彻底隐藏WordPress的版本信息,需要从几个不同的地方着手。最常见且有效的方法是修改主题的
functions.php
// 移除WordPress版本号,防止在head标签和RSS feed中泄露
remove_action('wp_head', 'wp_generator');
add_filter('the_generator', '__return_empty_string');
// 移除WordPress版本号,针对CSS和JS文件路径中的'ver='参数
function remove_wp_version_strings_from_styles_scripts($src) {
if (strpos($src, 'ver=')) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('style_loader_src', 'remove_wp_version_strings_from_styles_scripts', 9999);
add_filter('script_loader_src', 'remove_wp_version_strings_from_styles_scripts', 9999);这段代码需要添加到你当前主题的
functions.php
functions.php
同时,别忘了删除WordPress安装根目录下的
readme.html
很多人问我,隐藏这个版本号到底有没有用?说实话,我个人觉得它更多的是一种“心理安慰”或者说“习惯性操作”,而非真正的铜墙铁壁。
从安全角度看,隐藏版本号确实能让一些自动化扫描工具或“脚本小子”在第一眼时无法直接获取你的WordPress版本。这就好比你家门口没挂门牌号,小偷路过时可能不会那么快知道你家是哪栋。但一个真正有心且技术过硬的攻击者,总有办法通过其他指纹(比如特定的CSS文件、JS文件、插件特征、错误信息等)来推断你的WordPress版本,甚至是你使用的插件和主题版本。所以,它不是一个安全漏洞的修复,而是一个信息泄露的缓解。它只是提高了那么一丁点攻击者的“门槛”,让他们需要多费点劲。
那为什么还要做呢?除了上面提到的那点微不足道的“安全提升”,我发现很多时候这是一种“强迫症”作祟。作为开发者或站长,我们总希望自己的网站代码尽可能地干净、简洁,不必要的元信息能少则少。看到HTML源码里那个
meta name="generator" content="WordPress 6.x.x"
所以,我的观点是:隐藏版本号不能替代定期的更新、使用强密码、安装安全插件等核心安全措施。它只是一个锦上添花的小技巧,能做就做,不做也没什么大不了。但如果你像我一样,看到不必要的代码就想清理,那它就是值得一做的。毕竟,少一点不必要的信息暴露,总是好的。
好吧,既然决定要动手,那我们来看看具体怎么操作。这部分会涉及到一点点代码,但别担心,很简单。
首先,你需要访问你WordPress站点的文件系统。这通常通过FTP客户端(比如FileZilla)或者你的主机控制面板(比如cPanel的“文件管理器”)来完成。
找到你当前激活主题的文件夹。路径通常是:
wp-content/themes/你的主题名/
functions.php
操作步骤:
备份!备份!备份! 重要的事情说三遍。在修改任何主题文件之前,请务必备份
functions.php
functions_backup.php
用文本编辑器(比如Notepad++、VS Code,或者主机文件管理器自带的编辑器)打开
functions.php
将前面“解决方案”部分提到的代码粘贴到文件的末尾,在
?>
?>
// 移除WordPress版本号,防止在head标签和RSS feed中泄露
remove_action('wp_head', 'wp_generator');
add_filter('the_generator', '__return_empty_string');
// 移除WordPress版本号,针对CSS和JS文件路径中的'ver='参数
function remove_wp_version_strings_from_styles_scripts($src) {
if (strpos($src, 'ver=')) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('style_loader_src', 'remove_wp_version_strings_from_styles_scripts', 9999);
add_filter('script_loader_src', 'remove_wp_version_strings_from_styles_scripts', 9999);保存文件并上传覆盖原文件。
注意事项:
functions.php
这个方法的好处是轻量、高效,不依赖任何插件。对我这种喜欢控制一切的站长来说,这是首选。
你以为改了
functions.php
head
generator
readme.html
readme.html
RSS/Atom Feed: 你的网站通常会有RSS或Atom订阅源(比如
你的域名/feed/
generator
functions.php
add_filter('the_generator', '__return_empty_string');CSS和JavaScript文件中的版本查询参数: 你有没有注意到,WordPress加载的很多CSS和JS文件,它们的URL后面会跟着一个
?ver=X.Y.Z
wp-includes/css/dashicons.min.css?ver=6.4.3
ver
functions.php
remove_wp_version_strings_from_styles_scripts
ver
wp-includes/css/dashicons.min.css
HTTP响应头(极少数情况): 有些服务器配置或者特定的插件,可能会在HTTP响应头中添加关于WordPress的信息。这种情况比较少见,而且处理起来也更复杂,通常需要服务器层面的配置修改,超出了我们这里讨论的范畴。不过,作为知识点提一下,以防万一。
插件和主题自身的版本信息: 即使你隐藏了WordPress核心的版本号,你使用的某些插件或主题可能也会在它们自己的CSS、JS文件,或者HTML结构中,甚至是通过注释的方式,泄露它们自己的版本信息。这个就很难统一处理了,因为每个插件/主题的实现方式都不同。除非你真的有强迫症到极致,否则通常不会去深究这些。
所以,你看,隐藏版本号不是一劳永逸的事情,它是一个多层面的工作。但话说回来,我们做的这些,已经覆盖了大部分常见的、容易被发现的版本信息泄露点。对于日常使用来说,这已经足够了。
以上就是如何隐藏WordPress版本号?移除版本信息?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号