喜欢上你,爱上你,真是太好了,谢谢。 收藏本站
登陆 / 注册 搜索

查看: 188   回复: 2

[# PHP] Discuz 衡/欣 字提示用户名包含敏感字符无法注册问题

[复制链接]
回复 发新帖
小执念古黑浩劫论坛大牛 2019-12-3 11:17:40 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

一、为什么会有这个问题

这个涉及到的是字符编码的问题,在 UTF-8 中,将这个汉字转换为 16 进制的话会是\xE8\xA1\xA1的话则是\xE6\xAC\xA3

然后在 uc_client/model/user.php 和 uc_server/model/user.php 文件中有这个函数 function check_username

discuz-check-username.png Discuz 衡/欣 字提示用户名包含敏感字符无法注册问题

  1. $guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
复制代码

上面这个语句导致问题的内容是:匹配是否有字符包含\xA1\xA1 或者\xAC\xA3

然后「衡」 \xE8\xA1\xA1 里面包含 \xA1\xA1 ,「欣」 \xE6\xAC\xA3 里面包含了 \xAC\xA3。于是就被拦截了. .

二、解决办法

由于本站是 utf-8,所以其他 gbk、big5 版本无法测试(貌似其他版本没有这个问题),下面是 UTF-8 的修改方法:
  1. $guestexp = '\xE3\x80\x80|^\xE6\xB8\xB8\xE5\xAE\xA2|^Guest|^\xD3\xCE\xBF\xCD';
复制代码

上面过滤了什么?

utf-8 全角空格 、utf-8 游客开头的用户名、Guest 开头的用户名、 gbk 游客开头的用户名

三、原来的是什么?

  1. \xA1\xA1 = GBK 全角空格
  2. \xD3\xCE\xBF\xCD = GBK 游客
  3. \xB9\x43\xAB\xC8 = BIG5 遊客

  4. \xAC\xA3 = BIG5 派
复制代码


gbk.png Discuz 衡/欣 字提示用户名包含敏感字符无法注册问题
gbk

big5.png Discuz 衡/欣 字提示用户名包含敏感字符无法注册问题
big5


清风霁月「出类拔萃」 2019-12-3 11:24:58 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

湖南台新出了个综艺节目,好像是明星带着自己的孩子去体验生活,那个节目叫什么,突然想不起来了,求大神解答?
凉冬空巷龙战于野 2019-12-5 21:55:48 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

君甚吊,家翁可知?
您需要登录后才可以回帖 登录 | 注册账号  

本版积分规则

关于本站|小黑屋|Archiver|古黑论

GMT+8, 2019-12-14 08:27 , Processed in 0.044156 second(s), 26 queries , Redis On.

© 2015-2019 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表