2

我正在为我们的网站创建一个walkup 创建帐户页面。在用户提交表单后,即使两个密码匹配且有效,我总是出于偏执清除 type="password" 输入的默认值=""。在我们的设计师问我这样做是否有任何真正意义之后,我开始思考这个问题。我当然可以在提交后将密码回显到 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 中拉出并先进行消毒。

乔什

4

2 回答 2

1

我认为这样做是个坏主意,因为 HTML 源代码可能会被缓存,即使您使用 HTTP 标头告诉它不应缓存它。这取决于浏览器,Microsoft 建议在 BODY 标记之后添加一个额外的 HEAD 标记。Microsoft 有更多关于 Internet Explorer 的“功能”的信息。

于 2009-08-27T19:21:09.923 回答
1

我想您不应该这样做,因为同事可能会窃取您的密码进入个人资料页面并查看源代码。

如果您的密码是使用安全哈希加密的,您可能无法实现此功能,因为这是一种单一方式,您无法取回原始密码。

于 2009-08-27T18:49:15.730 回答