3

新用户注册时文本字段中允许的典型字符是什么?有www标准吗?对允许的用户名和密码字符类型特别感兴趣。

4

10 回答 10

12

不要限制密码字符。可用的字符越多,密码就越安全。没有充分的理由禁止空格,例如密码中的空格。

对于用户名,这取决于它们的显示位置。如果您打算为那里的用户提供自己的个人资料 URL,那么您会希望限制字符数,如果没有的话。

只是不要忘记在再次输出用户输入时对其进行转义。

于 2009-01-19T21:20:42.357 回答
4

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

于 2009-01-19T21:18:11.443 回答
4

你有什么理由否认任何角色?您应该只允许所有内容,可能的空字符除外。当您在站点上打印用户名时,您必须对用户名进行编码以避免跨站点脚本问题,但您可能还是应该这样做,即使您为了安全而过滤“危险”字符也是如此。允许所有字符,尤其是密码,极大地提高了可用性(和安全性,在密码的情况下)。另外,请记住,如果某些用户的姓名中有重音符号(或者如果他们使用的是中文或俄语等非拉丁字母),他们可能希望输入 UTF8 字符。

于 2009-01-19T21:20:49.987 回答
3

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

于 2009-01-19T21:23:28.453 回答
2

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

于 2009-01-19T21:17:32.037 回答
2

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

至少允许像 á à é è ì 这样的欧洲字符。

当然,如果它必须真正国际化,那么您必须允许使用中文和阿拉伯语等语言中的任何字符。

在我看来,如果您不想让任何人生气,您就无法真正列出允许的字符。

如果您想出于安全目的这样做,我建议您在尝试使用字符串之前转义必要的字符,而不是预先过滤。

于 2009-01-19T21:26:33.237 回答
2
  • 密码字段应该允许任何字符(无论如何你都会散列它,对吧?)
  • 文本字段不应仅限于特定字符(例如 [A-Za-z])。否则,您将不允许需要(或想要)使用重音字符的人。从数据库/处理方面,您将转义或使用绑定来保存数据。
  • 如果您有一个特定的字段,您知道只能接受特定的字符集(JW 提到的商业原因等)。例如,仅适用于美国受众的表格可能仅限于数字和邮政编码的破折号。
于 2009-01-19T21:28:25.633 回答
2

也添加到其他人所说的:密码:任何东西,但要对它们进行哈希处理(当然)

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

于 2009-01-19T21:40:01.990 回答
1

作为绝对最低限度,密码应允许目标语言环境中键盘上的每个可用字符。

于 2009-01-19T21:23:07.127 回答
1

不要限制任何东西,如果您想为用户提供他们自己的 URL,请使用数字 ID 或要求用户为 URL 命名。永远不要显示用户的用户名,显示他们的显示名(应该限制为除危险的 Unicode 字符之外的任何内容)并在注册后询问。

于 2009-11-30T04:35:16.263 回答