Должен ли я предотвратить JavaScript-инъекции в поле пароля? - PullRequest
0 голосов
/ 08 июля 2019

Я нашел много информации об JavaScript-инъекциях, но не нашел никакой конкретной информации о password поле.

Для моей тестовой учетной записи GMail мне удалось установить следующий пароль <Script>alert(document.cookie);</script>, и он работает правильно. enter image description here enter image description here

Стоит ли просто кодировать < и > в их HTML-эквивалент?

Как обращаться с такими паролями?

Редактировать № 1: Я храню пароли в БД в виде хэшей (и здесь нет проблем с инъекциями JavaScript). И я хочу добавить переключатель для видимости пароля. В этом случае я должен кодировать < и > в их HTML-эквивалент, и все?

Редактировать # 2: Как я понял, этого должно быть достаточно для Password toggle Visibility, и я могу быть уверен, что он будет работать правильно (это предотвратит инъекции JavaScript).

<!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>
...