我正在尝试将用户输入重新填充到表单字段中,以便在输入数据时由于错误而必须修复
我通常会像这样完成它:
<input type="text" name="username" value="<?php echo @$_POST['username'];?>" />
<input type="password" name="password" value="<?php echo @$_POST['password'];?>" />
我的问题是,当我查看源代码是否输入了无效的用户名/密码时,他们输入的实际密码在视图源中可见(不确定浏览器是否重要,但它是firefox)
实现这一目标的最佳方法是什么?
答案 0 :(得分:1)
如果没有在源中包含该值,则无法为密码字段设置默认值,但您不需要。
隐藏密码的方法是让看着用户肩膀的人不能轻易看到密码是什么。
只有用户(知道他们刚输入的密码是什么)才能告诉他们的浏览器查看来源。
如果您担心在传输过程中被截获的密码,那么从浏览器到服务器的过程就像从另一个方面一样容易受到攻击。使用SSL加密(https)进行所有安全的浏览器 - 服务器通信。
同时,由于您从$_POST
(外部输入)获取数据并将其直接注入页面,因此您很容易受到an XSS attack的攻击。
答案 1 :(得分:0)
只是不要重复密码。几乎没有丢失(因为他们无论如何都出了问题,密码是他们出错的最可能的事情)并且你可以在客户端验证中忘记重新输入密码,所以对于它来说并不是太麻烦忽略重新输入的用户。
可以说重新发送密码的风险很小,因为对于发送密码的用户来说,窃听的安全程度是相同的(HTTPS或不相同),因此唯一可能查看源的人是用户他们自己,但它通常足以在这种情况下清除密码,它不应该在用户中引起太强烈的负面反应。
答案 2 :(得分:0)
我真的不认为这是一个问题,因为源中显示的密码无论如何都是无效的。我没有保留密码失败,我只是清除文本框,以便用户可以重新键入它。
答案 3 :(得分:-2)
如果用户名或密码不正确,则始终在错误消息页面上取消设置密码。
顺便说一下,$_POST
不在 @ 之前,这是一个不好的做法