用户是否可以输入密码,例如“12345”或“12345” - 开头或结尾的空格?或者你会修剪密码以删除前导或尾随空格,因为它可能只是输入错误。
答案 0 :(得分:55)
是的,他们应该。
不,你不应该修剪它。
答案 1 :(得分:33)
让我告诉你一个故事。
我需要在电子商务网站上创建一个帐户,所以我运行我的随机密码生成器制作一个8个字符的上/下/数字/标点符号密码,粘贴两次以确认它,完成注册我的所有个人信息,并将随机密码保存在本地PGP加密文件中供以后使用。
后来我尝试登录,但再次粘贴密码不起作用。经过一些测试后,我惊恐地发现该网站已经删除了原始密码中的所有标点符号,在一些误导性的消毒尝试中,将我的密码减少为三个容易暴力破解的信件。
请勿修剪或消毒用户密码。
答案 2 :(得分:17)
永远不要“清理”密码只是为了解决“打字错误”。这会使用户感到困惑,并且在某些情况下使他们无法登录。事实上,不要在用户背后更改密码...总是警告他们密码无效并让他们尝试新密码。
我最近遇到的一个很好的例子是使用3Com交换机。 Web界面允许我更改管理员密码,但没有提醒我密码限制为八个字符。我输入的密码长度超过八个字符。当我在更改后尝试登录时,它只是拒绝了我的密码。但是,如果我只使用了前八个字符,那么我就可以登录了(我自己试错了,不好玩)。
这些天的密码看起来并不像过去那样。例如,我的密码通常如下所示:
Man, this program is really ticking me off!
答案 3 :(得分:9)
您应该使用确认字段验证密码。如果他们两次输入拼写错误 - 那么您希望忘记密码或重置功能。
空间应该无关紧要,因为你不应该以纯文本形式存储它。
答案 4 :(得分:7)
您做出这样决定的那一刻就是您开始沿着微观管理的道路前进的那一刻(在这种情况下是您的用户)。
包含空格的密码会破坏您的系统吗?或者是安全风险?然后别担心。让您的用户处理他们自己的错误,即使这意味着他们必须感到沮丧。他们的拼写错误绝对不是你的问题。
答案 5 :(得分:5)
我曾经多次去过一个会议,有人在大屏幕上显示计算机显示后登录到他们的帐户进行演示,没有正确地将焦点更改为密码字段,因此他们的密码向全体观众透露。
任何可能需要在他人面前输入凭据的人都应考虑在密码中保留一个或三个尾随空格,以防万一。在构建身份验证系统时,您应该从不修剪这些空间。
答案 6 :(得分:4)
大概你没有存储实际的密码,所以......
答案 7 :(得分:4)
Space是常规密码字符,您不应将其删除。
由于您可能在将密码存储到数据库之前对密码进行哈希处理,因此该空间将被视为任何其他字符。
答案 8 :(得分:2)
由于将密码存储为文本是不好的juju,因此不需要修剪()密码,因为它会立即进行哈希处理。
... 在类似的说明中,我是否正确相信密码不需要被正则表达式验证为sql注入,因为它们将被哈希并且不作为纯文本插入数据库中?
答案 9 :(得分:2)
如前所述,密码包含它是好的,但是我会在生成新的随机密码(比如一个合理的重置丢失密码系统)时添加它,你应该避免生成包含这些棘手字符的密码。
如果密码足够长且随机,那么这将弥补一些棘手字符的限制将使最终用户的生活变得相当容易......
答案 10 :(得分:2)
我投票赞成:不,他们不应该:
不允许用户在密码的开头和结尾使用空格有一个很大的好处,这就是它消除了用户复制和粘贴密码时经常出现的问题(例如来自一封电子邮件),它包含不属于密码的空白区域。
然后用户感到沮丧,认为系统坏了并且联系支持。开发人员立即被拉到项目上以检查“错误”登录过程,只花一天时间拉出他/她的头发,直到他/她意识到问题为止。
我认为在创建密码时强制执行此策略可以解决比创建更多的问题。