WordPress网站防止暴露用户名的WordPress 技巧是什么?

  默认情况下,在用户注册的时候,直接过滤掉user_login一些不适合在链接中生成的字符,然后全部转成小写字母生成user_nicenam

  默认情况下,在用户注册的时候,直接过滤掉user_login一些不适合在链接中生成的字符,然后全部转成小写字母生成user_nicename。所以大部分 WordPress 用户的user_nicename和user_login是一样的,这样通过查看某个作者的文章列表链接,就能猜到他的登录账号user_login,然后就可以暴力破解。那么WordPress网站防止暴露用户名的WordPress 技巧是什么?

WordPress主题下载,WordPress免费主题下载,网站源码模板下载

  1. 修改 user_nicename。

  WordPress 后台没有提供修改的user_nicename的地方,「WPJAM用户管理插件」已经实现了该功能。

  2. 作者的文章列表链接不出现 user_login

  如果用户的user_nicename和user_login是一样的情况下:

  作者文章链接使用author_id代替user_nicename。

add_filter('author_link', function($link, $author_id, $author_nicename){
	$author	= get_userdata($author_id);
	
	if(sanitize_title($author->user_login) == $author_nicename){
		global $wp_rewrite;

		$link	= $wp_rewrite->get_author_permastruct();
		$link	= str_replace('%author%', $author_id, $link);
		$link	= home_url(user_trailingslashit($link));
	}
	
	return $link;
}, 10, 3);

  原来的作者链接直接设置为 404 页面,防止用户名暴露。

add_action('pre_get_posts',  function($wp_query) {
	if($wp_query->is_main_query() && $wp_query->is_author()){
		if($author_name = $wp_query->get('author_name')){
			$author_name	= sanitize_title_for_query($author_name);
			$author			= get_user_by('slug', $author_name);

			if($author){
				if(sanitize_title($author->user_login) == $author->user_nicename){
					$wp_query->set_404();
				}
			}else{
				if(is_numeric($author_name)){
					$wp_query->set('author_name', '');
					$wp_query->set('author', $author_name);
				}
			}
		}
	}
});

  WPJAM用户管理插件已经集成该功能,直接启用即可。以上就是小编为大家分享的关于防止暴露用户名的WordPress 技巧。


下载说明:
1. 本站所有资源来源于网络和用户上传,如有侵权请联系站长
2. 本站分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,商用请支持正版!不得违反国家法律,否则后果自负!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

本站的资源均来自于互联网,仅为资源共享、学习参考之目的,其版权均归原作者及其网站所有,如有侵权请留言联系:admin,转转请注明出处:http://zhanmr.com/6447.htm

发表评论

电子邮件地址不会被公开。 必填项已用*标注