Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 空白密码难题_Asp.net_Security - Fatal编程技术网

Asp.net 空白密码难题

Asp.net 空白密码难题,asp.net,security,Asp.net,Security,我在这里遇到了一个空白,希望能有一个好的开始 我在一个页面上有两个密码文本框,在加载时,我将它们的值属性默认为字符串“*”,因为我不想显示正确的密码,甚至不想提示密码的长度。现在,我不想让用户编辑这些空白字符串,从而混淆用户,所以在聚焦时,我清除文本框。现在,我的代码认为密码已经更改,将保存空白值,这是允许的,但不是故意的。 让所有其他东西保持相同,我可能会特例空白密码的情况,不允许没有密码。 在不寻常的情况下,对于没有密码的情况,我会添加一个特殊的按钮“清除密码”。更改保存密码的代码,使其不会

我在这里遇到了一个空白,希望能有一个好的开始


我在一个页面上有两个密码文本框,在加载时,我将它们的值属性默认为字符串“*”,因为我不想显示正确的密码,甚至不想提示密码的长度。现在,我不想让用户编辑这些空白字符串,从而混淆用户,所以在聚焦时,我清除文本框。现在,我的代码认为密码已经更改,将保存空白值,这是允许的,但不是故意的。

让所有其他东西保持相同,我可能会特例空白密码的情况,不允许没有密码。
在不寻常的情况下,对于没有密码的情况,我会添加一个特殊的按钮“清除密码”。

更改保存密码的代码,使其不会保存空白密码

我不知道使用空白密码的原因(我想它可能会允许有限的访问?),但讽刺的是,出于安全目的,我会说,添加一个复选框,表示“无密码”,并禁用密码输入字段(如果选中)。这样,密码将明确为空,如果出现任何后果(访问受限、验证码要求等),用户希望知道选中此框也会产生这些影响。

在我看来,您不应该首先加载密码,并且仅当密码包含一些文本时才保存密码


P.S.S.:出于安全原因,您应该考虑不要在明文中保存密码,而应作为<强>散列值< /强>(加盐)。读和读。只是一个提示。

无论你做什么,你都必须在保存过程中检查这些值,而且总是有可能出错(即用户希望将密码设置为你的“假装”字符串)

如果您使用并输入的是type=“password”而不是type=“text”,那么添加什么文本都无关紧要,因为浏览器会为您隐藏它,所以只需添加一个已知但不太可能被使用的字符串(即,如果您有无效字符,请使用它们,或启动它#0#或其他)

接下来,我将使用JavaScript设置这个默认值——如果用户禁用了JavaScript,并且您的onFocus事件没有运行,那么这无关紧要,因为没有什么需要清除的


最后,在保存方法中,检查密码框中是否存在已知字符串,如果存在,则知道忽略该值,如果字段为空,并且当前密码也为空,则不会发生任何更改。

我发现IIS不允许FTP使用空密码,因此问题是,虽然很有趣,但现在还没有定论。

这不是对你具体问题的回答,只是一个观点。我会将value属性默认为“*******”,但是许多星号是字段的最大长度。这样就不太可能出错,而且您仍然没有暗示当前密码的长度。密码的最大长度不应该很短-您将显示多少个*s?30? 60? 120?这是我已经在做的,但是默认长度为10*。我没有加载密码,我不能散列它们,但会考虑加密它们。他们曾经访问FTP服务器,所以我必须能够检索到他们。我理解。抱歉,我无意让自己听起来像smarta**-但我想,提醒其他程序员一些用户可能会使用空白密码总是好的。我的问题是,如果在onFocus中清除了该字段,并且当前密码不是空的,那么代码会检测并保存更改。啊,是的,对不起,我终于明白你的意思了。