2011-08-30 120 views
19

只是想知道。我应该修改密码字段中的空格

我们通常在ASP.Net应用程序中以各种形式修剪用户名,密码字段的最佳实践是什么。

即我们应该在保存/加密之前删除密码字段中的尾部空格吗?

+0

如果密码中允许空格字符? http://stackoverflow.com/questions/5475071/should-whitespace-characters-be-allowed-in-a-password –

+0

@ChristopheGeers - 实际上在问题上稍有不同。虽然其他问题询问是否允许在空格中输入密码,但这个问题只能用空格_outside_密码('trim()')。 – martinstoeckli

+0

可能重复的[应该允许用户输入密码的开头或结尾的空格吗?](http://stackoverflow.com/questions/632167/should-users-be-allowed-to-entered-a-密码与空间在开始 - 或 - e) –

回答

1

这取决于

一些用户从某处复制其密码或密码填写,然后复制粘贴在确认密码字段。这有时会在密码前后给出额外的空间。一个空间也会被加密,而他们甚至没有意识到有一个空间。

当其他用户实际。

创建空间密码,它是完全由你来决定你的密码策略。只要确保用户非常清楚你的密码政策是什么。要么提醒他们是否使用了空间,要么使用空间提醒他们不被允许。

+0

仅仅因为您在输入时最后留下了一个空格而无法登录,因此无法正常登录。如果你不得不提醒用户看清以便清楚,你可以确定这不是一个好主意。 – Neil

1

不要修剪空格,因为某些用户的密码中包含空格。如果您不需要空间,那么只需将空格放入密码即可。

28

将密码保留为用户输入的密码。

你永远不应该改变一个用户放置的字段,总的来说密码。

+1

+1。你不应该修改密码。如果您不想使用空格接受密码,则不应接受包含空格的密码。 – Nippysaurus

+0

因此,大概你应该首先拒绝密码,或者当有人试图登录时,尝试追加和/或预先考虑各种空格字符到他们输入的任何内容,作为相应的尝试登录他们。我不觉得很好的后一种选择,所以我认为在这种情况下唯一明智的做法是在开始/结束时用空白来拒绝密码 –

2

它取决于您的业务:如果您希望允许用户在最后创建带空格的密码,则不应该这样做。 无论如何,而不是修剪它,这将是更好的验证它,并通知用户一个无效的密码显示原因在这种情况下,白色空间

2

不要修剪空间,有些可能会使用空格在他们的密码,应用程序应该是用户友好的,以及应提供安全性,所以不要修剪空间。

+0

不修剪空格是关于非用户友好的。我们有许多关于无法使用密码的用户请求。他们从一些外观或类似的东西中复制了它,这些东西也复制了一个空格。 –

6

你可以使用它来提醒用户密码包括空格或类似的东西。

if (/^\s|\s$/.test(password)) { 
    //alert('Hey Watchout'); 
} 

修剪密码不是一个好习惯。

希望这会有所帮助。

+0

谢谢。 – Liam

+0

在密码开头或结尾处使用空格或其他不可打印的字符并不是一个好习惯。我认为他们不应该在中间使用,但我会支持它。 –

10

如果您在选择测试密码时使用的数据库输入时使用相同的修剪方法,用户的密码仍然可以正常工作。

对于那些选择在密码开头或结尾使用空格的用户(非常罕见),质量当然会有轻微的下降。

密码内的空间不应该是一个问题,寿。

总结:我没有遇到任何好的理由而不是做一个简单的修剪()的任何输入从web窗体和类似的,密码或不。但是,这些好处远远超过了上述的微小成本。

+1

一致认为,空格_side_密码应单独存在,空格_outside_密码只是要求麻烦,安全性不应该依赖于这样的空格。 – martinstoeckli

0

修剪前后空格和所有其他空格。对于所有常见领域来说,这是一个很好的做法。 不要将这些尾随和前导空格计入最小密码长度。 密码中间的空格就好了。请不要限制密码可以包含的内容。