我应该防止 JavaScript 在密码字段中注入吗?

Should I prevent JavaScript injections in password field?

我找到了很多关于 JavaScript 注入的信息,但没有找到任何关于 password 字段的具体信息。

对于我的测试 GMail 帐户,我能够设置下一个密码 <Script>alert(document.cookie);</script> 并且它可以正常工作。

我是否应该将 <> 编码为它们的 HTML 等价物?

如何处理此类密码?

编辑#1: 我将密码作为哈希值存储在数据库中(这里 JavaScript 注入没有问题)。 我想为密码可见性添加一个切换。 在这种情况下,我应该将 <> 编码为它们的 HTML 等价物,仅此而已?

我用了下建议:

  1. 您应该将密码作为散列存储在数据库中(这里的 JavaScript 注入没有问题)。
  2. 对于 Password toggle Visibility:

    2.1 如果它是用普通 <input> 实现的,你不需要做任何事情(这里没有 JavaScript 注入)。

    2.2 如果它是用 <span><div> 等实现的,那么你必须对它进行 HTML 编码(注意你还必须担心 & 个字符).

<!DOCTYPE html>
<html>
<body>

Password: <input type="password" value="<Script>alert(document.cookie);</script>" id="myInput"><br><br>
<input type="checkbox" onclick="showPasswd()">Show Password

<script>
function showPasswd() {
  var x = document.getElementById("myInput");
  if (x.type === "password") {
x.type = "text";
  } else {
x.type = "password";
  }
}
</script>

</body>
</html>