前几天龙笑天下博主发现了WordPress的一个重要漏洞,那就是WordPress站点的管理员评论页面和作者归档页面存在暴露管理员登录用户的现象,具体可以通过查看管理员评论页面和作者归档页面的源代码,可以轻易发现该站点的管理员用户名。经过检测发现绝大部分WordPress主题都中招了,懿古今主题也不例外,最终经过大家的努力,终于把这个漏洞不上了,所以直到今天才提供方法以便大家解决这个问题。
方法一:修改懿古今主题文件(仅适合懿古今主题)
1、打开主题文件夹内的header.php文件,找到以下代码:
- <body <?php body_class(); ?>>
修改为:
- <body <?php if ( !is_author() ){ body_class();} ?>>
2、打开主题文件夹内的inc\functions\comment-template.php文件,找到一下代码(大约在第10行):
- $tag = 'li';
修改为:
- $tag = 'li class="nana"';
其中class="nana"中的nana可以任意值。
3、小结:只需要修改以上两个文件的代码,即可堵住管理员评论页面和作者归档页面暴露管理员登录用户名的漏洞。
方法二:批量替换文章内容的文本信息(适合所有主题)
将以下代码扔到主题文件的functions.php函数文件里面,即可完美解决因为comment_class导致管理员登录名泄漏的漏洞:
- //替换comment_class暴露的登录名为指定输出值——by 龙砚庭博客(http://loomob.com/)
- function lyt_comment_class($lyt){
- $replace = array(
- 'comment-author-你的真实登录名' => 'comment-author-新的输出名',
- );
- $lyt = str_replace(array_keys($replace), $replace, $lyt);
- return $lyt;
- }
- add_filter('comment_class', 'lyt_comment_class');
注意:切记将代码里面,该修改的代码修改好(实在不懂怎么修改,就自行审查元素,查看自己博客输出的comment-author-值)。
方法三:去除函数部分class值(适合所有主题)
意思就是将comment_class()函数里输出的comment-author-用户登录名这个class去掉,方法很简单,只需要将以下代码加入到主题文件的functions.php中,即可完美解决这个暴露管理员用户名的漏洞!
- /**
- *(全网独家)如何正确的避免你的 WordPress 管理员登录用户名被暴露
- * http://www.ilxtx.com/further-hide-your-wordpress-admin-username.html
- * 说明:直接去掉函数 comment_class() 和 body_class() 中输出的 "comment-author-" 和 "author-"
- */
- function lxtx_comment_body_class($content){
- $pattern = "/(.*?)([^>]*)author-([^>]*)(.*?)/i";
- $replacement = '$1$4';
- $content = preg_replace($pattern, $replacement, $content);
- return $content;
- }
- add_filter('comment_class', 'lxtx_comment_body_class');
- add_filter('body_class', 'lxtx_comment_body_class');
总结:
以上三种方法都能完美解决管理员评论页面和作者归档页面暴露管理员登录用户名的问题,至于采用哪种方法,就请大家自行选择。
PS:懿古今建议采用方法三,因为这个方法是最简单的。
PS:目前懿古今的Nana主题V2.02版本、Unite主题V3.02版本和Three主题V3.01版本均已修复这个问题,不想手工修改文件的,请自行下载最新版本覆盖。
发表于2016-11-04 22:32 沙发
[憨笑] 老实说,如果不怕麻烦,我倒是觉得修改Wordpress的输出为用户id最好,因为我们根本不知道comment_class输出的这个class有什么作用。
所以我才想出了用替换输出的方案来解决这个问题。
@橘子书是的,方法二不错,不过很多都是新手,对于新手博主还是方法三比较简单
@橘子书可以对不同的作者,不同的深度,不同的奇偶设置不同的格式。
发表于2016-11-04 22:36 板凳
方法三好,简单易于操作!
发表于2016-11-04 22:47 地板
看完后,赶紧去查了下我的网站,貌似zblog没这个问题
@阿飞这个是WordPress的BUG,zblog应该是没有的
发表于2016-11-04 23:18 4楼
主题大师好~
@姜辰[流汗] [流汗] [流汗] 大师???这个真的不敢当啊,纯粹就是业余折腾来玩玩而已
@懿古今比起我这个不会折腾的好多了。
发表于2016-11-05 09:46 5楼
终于把这个漏洞不上了,咳咳,记得修改一下 [憨笑]
@错别字本站分享的主题已经修复该问题
发表于2016-11-05 21:33 6楼
方法三确实好,但是用知更鸟的主题,每篇文章都有个由xx发表的,那里也暴露了管理员用户名,不知道哪位大神可以帮忙解决下这个问题,在此谢谢各位大神了!
@野人摊影视分享你可以到boke112导航搜索《如何将WordPress作者存档链接中的用户名改为昵称或ID》这篇文章就可以解决了
发表于2016-11-07 12:15 7楼
个人博客留作者归档页面毫无意义,多人博客才有点用。
@大致是的,想本站这样只有一个作者的,我直接隐藏作者归档页了
发表于2016-11-28 11:55 8楼
囧,,居然还有这回事,赶紧瞧瞧我的去。。
@Biebb技术博客这个大部分WordPress主题都存在这个问题
发表于2016-11-29 10:03 9楼
哈哈哈哈,使用后提交评论很慢
发表于2016-11-29 21:58 10楼
内容又更新了哦,方法更多了~
[大哭] 其实,老外在N年前就发现了这个问题………
@龙笑天[强] 方法达成就行,我就懒得更新这么多了,有效的办法采取一种就够了