使用WordPress的博主都有一个普遍的意识,就是为了安全而移除WordPress的版本号,以免不良用心的人利用旧版本的漏洞对网站进行攻击。

WordPress会在前端代码head中加入以下代码(3.8是当前网站所使用的WordPress版本号):

<meta name="generator" content="WordPress 3.8" />

有很多方法可以移除WordPress添加的版本号信息,我们先看看几种常见的方式:

方法一(错误):修改WordPress源代码

修改wp-includes/defaults-filter.php,将其中的:

add_action('wp_head', 'wp_generator');

改成:

remove_action('wp_head', 'wp_generator');

相信现在已经没人还傻到去修改WordPress源文件来实现某种功能了吧?下次WordPress更新又得重新修改,实在是累!

方法二(错误):直接删除wp_head()

因为本文开头那段泄漏WordPress版本号的代码,一般是主题文件header.php中的wp_head()函数输出的,并且这个函数会输出一些无用的代码,所以有些人干脆来个痛快,直接把wp_head()函数删掉了事。只是他们没有想过,很多插件/主题会通过这个函数进行一些操作,删掉这个函数将使这些插件/主题无法工作。兴许,下次安装个插件,死活用不了还找不到原因呢!

方法三:remove_action

一个好的方法,也是绝大多数教程提供的方法,是在当前主题的functions.php中添加以下代码:

remove_action('wp_head', 'wp_generator');

这样就可以从网站的head中移除本文开头提到的那段含有版本号的代码。但是,这里我要打击一下各位,在我看见的WordPress的站长,几乎没有一个站点能够完全隐藏掉WordPress版本号。打开你们的feed源,如http://example.com/feed,有没有看到这个:

<generator>http://wordpress.org/?v=3.8</generator>

啊啊!3.8不就是WordPress的版本号吗?再随便看看你的一篇文章的网页源代码,是否会看到下面的几段类似代码呢:

<script type='text/javascript' src='/wp-includes/js/comment-reply.min.js?ver=3.8'></script>
<link rel='stylesheet' href='/wp-includes/css/admin-bar.css?ver=3.8' type='text/css' />
<link rel='stylesheet' href='//fonts.googleapis.com/css?family=Handlee&ver=3.8' type='text/css' />

呵呵,又见3.8,其实WordPress不仅会输出本文开头的那段代码,而且会在feed中输出版本号,另外,为了更新缓存,某些css和js结尾也会附上WordPress版本号(如以上第2-3行代码)。

方法四:正确方法

所以,我们还应该移除feed和js/css中的WordPress版本号,在当前主题的functions.php中添加以下代码:

// 同时删除head和feed中的WP版本号
function ludou_remove_wp_version() {
return '';
}
add_filter('the_generator', 'ludou_remove_wp_version');
// 隐藏js/css附加的WP版本号
function ludou_remove_wp_version_strings( $src ) {
global $wp_version;
parse_str(parse_url($src, PHP_URL_QUERY), $query);
if ( !empty($query['ver']) && $query['ver'] === $wp_version ) {
// 用WP版本号 + 12.8来替代js/css附加的版本号
// 既隐藏了WordPress版本号,也不会影响缓存
// 建议把下面的 12.8 替换成其他数字,以免被别人猜出
$src = str_replace($wp_version, $wp_version + 12.8, $src);
}
return $src;
}
add_filter( 'script_loader_src', 'ludou_remove_wp_version_strings' );
add_filter( 'style_loader_src', 'ludou_remove_wp_version_strings' );

去除WordPress后台右下角WordPress版本号:

在fuction.php中加入以下代码可消除:

add_filter('admin_footer_text', 'left_admin_footer_text');
function left_admin_footer_text($text) {
// 左边信息改成自己的站点
$text = '感谢访问XXXX';
return $text;
}
add_filter('update_footer', 'right_admin_footer_text', 11);
function right_admin_footer_text($text) {
// 隐藏右边版本信息
}

最新文章

  1. Qt拖拽界面 (*.ui) 缩放问题及解决办法
  2. 7 Container With Most Water_Leetcode
  3. C语言程序设计第4堂作业
  4. Android布局属性大全
  5. Android 中的 WebView实现 Html5 标签网页加载
  6. Tamper Data
  7. sql 增加字段
  8. HDU4871 Shortest-path tree(树分治)
  9. 转载:最小生成树-Prim算法和Kruskal算法
  10. MySQL之select查询、function函数
  11. iOS 使用GBK编码的hmacMD5算法
  12. leetcode面试准备:Summary Ranges
  13. log4net 开箱即用
  14. 将本地sql文件导入到mysql中
  15. C机器级移位,编码表示 无符号编码表示,有符号编码表示一般最常见的方式是补码
  16. 使用阿里云cli管理安全组
  17. pip常用记录
  18. C++中输出字符到文本文档
  19. nginx安装扩展 sub_filter&amp;http_ssl_module
  20. Python [练习题] :字典扁平化

热门文章

  1. Android Studio SVN配置忽略文件
  2. Hadoop学习笔记(一)——安装与配置
  3. [LOJ2865] P4899 [IOI2018] werewolf 狼人
  4. Jmeter 插件图表分析
  5. Android APK 重签名
  6. 25-Java-Spring框架(三)
  7. ArcMap 0 (ArcGIS10.2安装)
  8. D. Carousel(分类+构造)
  9. STL下&lt;algorithm&gt;下的sort函数
  10. pycharm中的TODO注释用法