2009-01-19 49 views

回答

4

我更喜欢能够使用字母,数字和特殊字符来创建我的密码。当网站拒绝使用特殊字符时,我真的很讨厌它,特别是!@ $ *。

2

请允许所有O'Briens,O'Malleys,O'Reillys和其他撇号名字使用撇号!

12

请勿限制密码字符。可用的字符越多,密码就越安全。没有理由禁止使用空格,例如在密码中。

对于用户名,取决于他们将显示在哪里。如果您打算为用户提供自己的个人资料网址,则您希望限制字符的数量比如果不是更多。

只是不要忘记在再次输出时逃避用户输入。

4

你有什么理由否认任何人物?您应该只允许所有内容,可能的空字符除外。当您在网站上打印用户名时,您必须对用户名进行编码以避免跨站脚本问题,但即使您为了安全起见过滤“危险”字符,您也应该这样做。允许所有字符,尤其是密码,大大增加了可用性(以及密码方面的安全性)。另外,请记住,如果某些用户的名字中有重音符(或者他们使用的是非拉丁字母,如中文或俄文),则可能需要输入UTF8字符。

1

作为绝对最小值,密码应该允许您的目标语言环境中的键盘上的每个字符都可用。

3

如果你确实限制字符,那么应该不是是为了安全(例如防止引号,以防人们无法插入SQL)。你的代码应该能够处理输入字符串中的任何字符,只要它们被发送到某个地方就可以正确地转义它们。但出于商业原因或出于某些其他实际原因(例如Zach的URL示例),限制它们是可以的。

2

您的应用程序是否会被任何非英语用户使用?

至少允许欧洲人像áàéìì。

当然,如果它必须真正国际化,那么你必须允许任何汉字和阿拉伯语等字符。

在我看来,如果你不想让任何人生气,你真的不能让一个允许的角色列表。

如果您想为安全起见而这样做,我会建议在尝试使用字符串而不是前置过滤之前转义必要的字符。

2
  • 密码字段应该允许任何字符(你只是无论如何凑了吧?)
  • 文本字段应该局限于特定的字符(例如,[A-ZA-Z ])。否则,你将不允许需要(或想要)使用重音字符的人。从数据库/处理事物的角度来看,您将会转义或使用绑定来保存数据。
  • 如果你有一个特定的字段,你知道只能接受一个特定的字符集(商业原因,如JW所述)。例如,仅供美国观众使用的表单可能会限制为邮政编码的数字和短划线。
2

也添加到其他人所说: 密码:予取予求,但是哈希它们(当然)

用户名:一切,除了可能的空间......或多个空格(即单个空间是好的,多于一个空间= 1空间)

+0

关于用户名空间的好处。在具有公开个人资料的网站上,这尤其令人担忧。 “JohnDoe”和“JohnDoe”似乎对用户来说是同一个人。 – Rob 2009-01-19 21:43:10

1

不限制任何内容,如果你想给用户自己的URL,可以使用数字ID或要求用户使用URL。不要显示用户的用户名,显示他们的显示名称(应限制为除危险的Unicode字符之外的任何内容)并在注册后提出要求。

相关问题