【发布时间】:2012-11-04 01:02:38
【问题描述】:
我没有高兴地在网上搜索过,我想知道 joomla 对有效用户名的限制。
例如,最小和最大长度。 非法字符。
查看数据库字段大小,我假设最大长度为 150,我还读到 {}[]- 是非法的,但怀疑还有其他无效字符。
同样的密码问题,大小和字符限制是多少。
谢谢 本
【问题讨论】:
我没有高兴地在网上搜索过,我想知道 joomla 对有效用户名的限制。
例如,最小和最大长度。 非法字符。
查看数据库字段大小,我假设最大长度为 150,我还读到 {}[]- 是非法的,但怀疑还有其他无效字符。
同样的密码问题,大小和字符限制是多少。
谢谢 本
【问题讨论】:
每个数据库的用户名最长为 150 个字符,最少为 2 个字符。它对 {}[]- 没有限制,但不允许您使用以下任何一种:\"'%;()&
密码没有任何限制,因为它是经过哈希处理的 MD5。该字段本身限制为 100 个字符,尽管散列将确保它不会变得那么长。
参考:https://github.com/joomla/joomla-cms/blob/master/libraries/joomla/table/user.php#L184
【讨论】:
<?php $username="user"; $hash="dfc8a3c3361fde1s5ecf0213732582d1:6aYlDEj2Q40Aim90ke1T25buYyECHehA"; $ulen=strlen($username); if(preg_match('[<|>|\"|\'|%|;|\(|\)|&]',$username)||$ulen<2||$ulen>150) echo "Bad User"; else echo "Good User"; echo "<br>"; if(strlen($hash)==65 && preg_match('/^[A-Za-z0-9:]/',$hash)) echo "Good Hash"; else echo "Bad Hash"; ?>