这个城市大得让人到处能一见钟情,却没法重逢。 收藏本站
登陆 / 注册 搜索

阅读:5.1K   回复: 2

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

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

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

管理员
一、为什么会有这个问题

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

然后在 uc_client/model/user.php 和 uc_server/model/user.php 文件中有这个函数 function check_username
👀🦀❌🐠‍
Discuz 衡/欣 字提示用户名包含敏感字符无法注册问题 discuz-check-username.png

  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 派
复制代码


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

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

上一篇
下一篇
帖子热度 5121 ℃

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

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

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

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

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

本版积分规则

快速回复 返回列表