【发布时间】:2017-06-13 16:32:30
【问题描述】:
我有一个非常简单的页面,用户只需要选择一两个选项,它就会自动填写表单的其余部分。表单要求输入数据的用户填写用户名和密码。
所以我已经在网络的其他部分使用它并且它可以工作,但是对于密码字段它没有填写它,并且当我在表单上按发送时它失败了,因为没有填写密码。
<select id="username" name="username" onChange="getpass(this.value)">
....
....
<input id="pwd" size="10" type="password" name="password" value="">
更改时调用的 javascript 是:
function getpass(str) {
var xhttp;
if (str.length == 0) {
document.getElementById("pwd").innerHTML = "";
return;
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("pwd").innerHTML = this.responseText;
}
};
xhttp.open("GET", "getpass.php?q="+str, true);
xhttp.send();
}
如果我将该字段更改为选择列表,则用作密码的字符串将正确显示为选项。但提交表单失败,因为它需要密码类型。
这样做是为了避免用户必须输入两次密码,因为它是已知值(几乎与用户名相同)。在此用例中,所有安全考虑均不相关。
【问题讨论】:
-
你会用jQuery吗?
-
哇。摒弃这种思维方式。始终使用密码确保安全,不要设置优先级。切勿存储明文密码。
-
另外,当浏览器提示输入密码时,指示他们点击“存储密码”,您将获得更安全的解决方案。
-
我知道我知道。我也很痛。但是密码字段并不是真正的密码。只是存储的另一个字符串,然后转换为条形码并打印以进行激光扫描。他们以这种方式从仓库的一侧走到另一侧。我必须使用密码字段,因为条形码生成应用程序和扫描仪从数据库密码字段中获取值。海龟是不是一路下来。
标签: javascript php html forms