0

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

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

我应该只将<and编码>为它们的 HTML 等效项吗?

如何处理此类密码?

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

4

1 回答 1

0

我使用了下一个建议:

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

    2.1 如果它是用一个 plain 实现的<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>

于 2019-08-02T17:18:11.317 回答