在写网站的用户名验证,叫玩渗透的朋友测试。。然后给我来了个控制字符的输入(虽然没啥关系,但是,还是有影响。貌似在sf上面的正则也不起作用。还有,PHP perl怎么使用uncode?
如下测试:
<?php
$str=json_decode('"ux\u202eDD"');
var_dump($str);
var_dump(preg_match('/\x202e/', $str));
无法匹配(注:u202e 为RLO控制字符)
违禁字符 测试:功轮法
字符序为 RLO
功轮法
貌似控制字符钻的空子蛮多?
贴吧已经屏蔽了控制字符,不过,我能力有限,没有找到相关的控制JS的REX。
特来sf求助。
PS:用户名中文没法用 /^[x4e00-x9affw]{4,12}$/
翻完了PHP Manual ,找到了匹配的模式,,,中文,a-zA-Z_,匹配正则:
/[wx{4e00}-x{9aff}]{4,12}/u
测试:中文和日语应该都没问题了,要开启utf-8模式。