2009-08-27 59 views
2

我正在为我们的网站创建一个walkup创建帐户页面。在用户提交表单后,即使两个密码匹配并且有效,我总是会清除默认值=“”,以便在偏执狂的输入中输入类型=“密码”。在我们的设计师问我是否有真正意义的要求之后,我开始思考这个问题。如果他们不是有问题的验证失败,我肯定可以在提交后将密码回复到value =“”字段,但是这种方法是否存在漏洞?我们在此特定页面上默认为https。我知道你可以做一个html重写来改变输入类型,这样你可以回显到一个非屏蔽的输入,但是这似乎只能影响本地用户。设置类型“密码”输入与验证失败后之前提交的值

实例形式:

<input type="text" name="username" value="<?php echo $username; ?>"> 
<input type="password" name="password1" value=""> 
<input type="password" name="password2" value=""> 

在提交时,检查用户名看起来像一个适当的电子邮件,密码匹配,并且密码击败我们的最低要求。如果电子邮件冒犯了,但密码没有,我可以添加...

<input type="password" name="password1" value="<?php echo $password1; ?>"> 
<input type="password" name="password2" value="<?php echo $password2; ?>"> 

...并且无忧?不,我不使用注册全局变量。我手动将它们从$ _POST中取出并首先进行消毒。

乔希

回答

1

我想你不应该做它作为一个同事可能会窃取您的密码将个人资料页面,并做了查看源代码。

如果您的密码使用secure hash进行扰码,您可能不应该能够实现此功能,因为这是单一方式,并且您无法恢复原始密码。

+0

我使用sha1 +盐,一旦密码实际验证。所以,主要的威慑力是物理访问计算机,而有人专门在这个创建帐户页面? – Josh 2009-08-27 19:11:10

1

我认为这样做是一个坏主意,因为HTML源可能会被缓存,即使您使用HTTP标头告诉它它不应该被缓存。这取决于浏览器,微软建议在BODY标签之后添加一个额外的HEAD标签。 Microsoft has more information对这个Internet Explorer的“功能”。