怎样防止别有用心的人注册跟其他用户不易分辨的用户名?
By ivanilla
at 2017-02-13
0人收藏 • 4377人看过
比如0和O,1和I或者l,5和S,Z和2等, 另外包括但不限于使用希腊字母,西里尔字母,俄文字母或者其他拉丁系语言的字母来高仿英文字母的,以及使用中日汉字里面看起来差异非常小的汉字(也可以使用差别不大的简繁体中文汉字在)作为高仿用户名。
除了通常使用的替换这些字母之外,有没有更好的方法?
- 登录后方可回帖
回复#1 @lincanbin :
其实我昨天已经问过了,也有人提出类似方法(但不是用OCR,因为复杂而且准确率无法保证)既然你也提到了这个方法,那我就把链接发出来:https://segmentfault.com/q/1010000008322029
回复#2 @ivanilla :
这个确实也是个可行的好办法。
回复#3 @lincanbin :
现在问题就是怎样获取可能会被高仿的ID了,感觉就跟搜索一样。 如果被替换的字母或者汉字只有一两个应该没问题,但万一有人使用全用非英文的字母代替英文字母的高仿ID可能都搜不到
回复#4 @ivanilla :
正则限制字符集,英文字母、数字、下划线、横杠、纯中文。
回复#5 @lincanbin :
这样倒也简单了,我之前写过这样的正则(还支持日文),我找一下。
回复#6 @ivanilla :
preg_match('/^[a-zA-Z0-9\x80-\xff\-_]{4,20}$/i', $string)
回复#8 @ivanilla :
看自己需求了。
回复#5 @lincanbin :
不过只用正则还是防不了使用相似度很高的字母和数字来高仿的情况。 即使只允许中文汉字,也无法阻止使用简繁中文的不同来高仿的情况(其实可以把繁体转换成简体再注册,但这样不太好)
回复#10 @ivanilla :
道高一尺魔高一丈,这个方面不需要太尽力。
回复#12 @ivanilla :
GitHub上真是什么都有啊。
回复#13 @lincanbin :
我是在Google时看到Stack Overflow上面有人推荐的。