WordPress 手机号注册账户时过滤修改 display_name、nickname、user_nicename 字段,避免号码暴露

编辑于:2023年05月07日

WordPress 手机号注册账户时过滤修改 display_name、nickname、user_nicename 字段,避免号码暴露

玩机大学测试手机号注册账户功能时,发现会将 WordPress 的$user_nicename(别名)、$nickname(昵称)、$display_name(公开显示名)字段设置为完整的手机号。如此,用户在网站的留言和个人主页会直接显示手机号,导致个人隐私泄露。

过滤钩子

虫子菌在 WordPress 官网找到了这些字段的过滤钩子,注册账号时,按照保留手机号后四位数+年月日时八位数组合的形式,生成统一规格的别名、昵称和公开显示名,确保了用户手机号的隐私安全。

  • pre_user_nicename //nickname(昵称)
  • pre_user_display_name //display_name(公开显示名)
  • pre_user_nickname //user_nicename(别名)

具体代码

//使用手机号注册时,过滤并自定义昵称/别名/公开显示名
//教程 
function filter_pre_user_display_name($display_name) { 
    $nb_name=substr($display_name,-4); //手机号后四位
    $time_name= date('ymdH'); //年月日时,如 22042719
    $display_name=$nb_name."-".$time_name;
    return $display_name; 
}; 
add_filter( 'pre_user_display_name', 'filter_pre_user_display_name', 10, 1 ); 

function filter_pre_user_nickname( $nickname ) { 
    $nb_name=substr($nickname,-4); //手机号后四位
    $time_name= date('ymdH'); //年月日时,如 22042719
    $nickname=$nb_name."-".$time_name;
    return $nickname; 
}; 
add_filter( 'pre_user_nickname', 'filter_pre_user_nickname', 10, 1 );

function filter_pre_user_nicename( $user_nicename ) { 
    $nb_name=substr($user_nicename,-4); //手机号后四位
    $time_name= date('ymdH'); //年月日时,如 22042719
    $user_nicename=$nb_name."-".$time_name;
    return $user_nicename; 
}; 
add_filter( 'pre_user_nicename', 'filter_pre_user_nicename', 10, 1 );

将代码复制到所用主题的 functions.php 文件内的最后面,保存生效。

拓展阅读- WordPress 用户名相关字段

  • user_login:用户名,注册时输入的用户名,WordPress 默认不支持中文名;
  • user_nicename:别名,作者的文章列表页 URL,最长支持 50 个字符;
  • first_name:名字;
  • last_name:姓氏;
  • display_name -公开显示名,可用模板函数 the_author()调用显示文章的作者,有些主题的评论者也可能使用该字段显示。
  • nickname:昵称,是 display_name(公开显示的名称) 的一个选择选项,这个字段在wp_usermeta表里面的,以上的其它字段都在wp_users表内;

更多手机号码的隐藏过滤的方法

采用 WordPress 过滤钩子、自定义函数或 SQL 的方式,对手机号进行脱敏处理,避免再网站出现完整的手机号码泄露用户隐私。

相关推荐

暂无评论