0

我正在研究多字节字符以及它们是如何使用的,但是有多少不同的标识符/修饰符用于不同的多字节。

例如:&nbps;, &#nbsp;, U+0026,%20

有多少种不同的标识符,例如&, &#,u+%

我试图寻找输入,如果它们的单词长度超过 255 个字符,那么它可能是一个多字节(黑客尝试),然后我可以检查单词是否可以拆分具有多字节标识符,然后停止黑客尝试。

4

2 回答 2

0

您是否试图避免基于同形文字的欺骗?标识符在这里表示用户名吗?

如果是,并且您的用户使用拉丁字母,则只允许 ascii 字母和数字:

$identifier = preg_replace('#[^A-Za-z0-9]+#', '', $identifier);
于 2011-01-26T14:22:01.257 回答
0

%格式 - 用于嵌入 URLS 的 url 编码值,例如 %20 是空格 (ascii 20)
 - 命名字符实体,在这种情况下是不间断空格
U+0026- 十六进制表示法中的 unicode 字符,&在这种情况下
&#...;- 编号十进制字符实体 (base10) &= &
&#x...;- 十六进制编号字符实体 (base 16): &= &

于 2011-01-26T14:25:39.853 回答