新用户注册时文本字段中允许的典型字符是什么?有www标准吗?特别感兴趣的是允许的用户名和密码字符类型。
答案 0 :(得分:12)
不要限制密码字符。可用的字符越多,密码就越安全。没有充分理由禁止空格,例如密码。
对于用户名,它取决于它们的显示位置。如果您打算为用户提供自己的个人资料网址,则您希望限制字符的次数远远超过其他人。
再次输出时,不要忘记转义用户输入。
答案 1 :(得分:4)
我更喜欢能够使用字母,数字和特殊字符来创建我的密码。当网站拒绝使用特殊字符时,我真的很讨厌它,特别是!@ $ *。
答案 2 :(得分:4)
你有什么理由否认任何角色?你应该只允许一切,可能的例外是空字符。在您的网站上打印时,您必须对用户名进行编码以避免跨站点脚本问题,但即使您为了安全而过滤“危险”字符,您也可能应该这样做。允许所有字符,尤其是密码,大大提高了可用性(以及密码时的安全性)。另外,请记住,如果某些用户的名字中有重音符号(或者如果他们使用的是非拉丁字母,如中文或俄语),则可能需要输入UTF8字符。
答案 3 :(得分:3)
如果您确实限制字符,不应该是为了安全(例如,阻止引号,以便人们无法插入SQL)。您的代码应该能够处理输入字符串中的任何字符,只要它们被发送到某个地方就可以正确地转义它们。但出于商业原因或出于某些其他实际原因(例如Zach的URL示例)限制它们是可以的。
答案 4 :(得分:2)
请允许所有O'Briens,O'Malleys,O'Reillys和其他撇号名字的撇号!
答案 5 :(得分:2)
您的申请是否会被任何非英语用户使用?
至少允许欧洲字符如áàéèì。
当然,如果它必须真正国际化,那么你必须允许使用中文和阿拉伯语等语言中的任何字符。
在我看来,如果你不想让任何人发疯,你就不能真正列出允许的角色。
如果您出于安全目的而这样做,我建议在尝试使用字符串之前转义必要的字符,而不是在前面过滤。
答案 6 :(得分:2)
答案 7 :(得分:2)
也增加了别人所说的话: 密码:任何事物和一切,但是哈希(当然)
用户名:一切,除了,可能是空格......或多个空格(即单个空格都可以,多个空格= 1个空格)
答案 8 :(得分:1)
密码应作为绝对最小值,允许目标语言环境中键盘提供的每个字符。
答案 9 :(得分:1)
不要限制任何内容,如果您想为用户提供他们自己的URL,请使用数字ID或要求用户为URL创建名称。永远不要显示用户的用户名,显示他们的显示名称(除了危险的Unicode字符以外的任何内容),并在注册后要求显示。