В современных браузерах стандартом автозаполнения и автозаполнения является полное игнорирование autocomplete="off"
для полей пароля, которые помещаются в form
.И вставьте сохраненные пароли, даже если они находятся на странице управления пользователями.Хотя причина кроется в правильном месте, создание страницы управления пользователями вызывает огромную боль.
Веб-приложение моей команды работает под углом 7 и в настоящее время поддерживает только Chrome.Но есть большая вероятность, что нам потребуется поддержка других браузеров, таких как Internet Explorer, Edge, Firefox и т. Д.
Я знаю, что это в значительной степени затронутая тема, и что я могу найти много вопросов с ответами, похожими на этот вопрос( как это , или это ).Но каждое решение, которое я нашел до сих пор, имеет по крайней мере один большой недостаток.
То, что я до сих пор пробовал на хроме:
1) Используйте autocomplete="new-password"
Похоже, что разработчики Chrome / Chrome игнорируют даже это для type="password"
.
2) Использование type="text" autocomplete="new-password"
с семейством шрифтов звездочки
Это отключает автоматическое заполнение Chrome поля ввода и скрываетбуквы.Но большой недостаток заключается в том, что значение все еще там и может быть скопировано в другое семейство шрифтов.Поле ввода также теряет безопасность type="password"
, и любой хакер может легко получить это значение.
3) Использовать -webkit-text-security
Это почти то же самое решение, что иранее, но это даже не стандарт CSS, и лишь немногие браузеры поддерживают его.
4) Замените значение на *
Это самое хитрое решение, которое я пробовал до сих пор.Когда входное значение изменяется, я вызываю в машинописи функцию, которая: добавляет новый символ в локальную строку, изменяет значение DOM на * равное количеству символов, возвращает локально сохраненное значение на (blur)
.
Это оставляет мне большое количество проблем, с которыми приходится сталкиваться, в том числе: при удалении любого символа в строке всегда удаляется последний символ, в дополнение к последней проблеме первый символ всегда будет оставаться прежним, даже если значение полностью удалено,знать, где в строке удаляются символы.
Это решение не идеально.
5) Отключить управление паролями для домена в настройках браузера
Это действительно неРешение проблемы, так как это означает, что я ожидаю, что пользователи отключат управление паролями для домена.Это также привело бы к тому, что пароль на странице входа в систему не сохранялся бы, так как это может понадобиться многим пользователям.
6) Произвольная выборка [name]
и [autocomplete]
значений
Односторонним образом связывание указанных значенийрандомизированная строка, основанная на текущем времени, я могу убедиться, что поле пароля не соответствует ни одному из полей, сохраненных браузером.Хотя многие сообщают, что это работает между всеми браузерами, мне кажется, что это совсем не работает при использовании Chrome.Для меня chrome показывает рекомендуемый пароль, если введено значение type="password"
.
Решения, которые я видел до сих пор:
1) Используйте два поля ввода
Мне кажется, что это работает так же, как и мое собственное решение 4).И, вероятно, будет так же хлопотно работать с ним.
2) Используйте jQuery Disable Auto Fill Plugin
Это, кажется, очень близко к тому, что я ищу, но проблема в том, что этоиспользует jQuery.Все, что я могу сказать, это то, что мне сказали, что мы не используем jQuery и что я, вероятно, не смогу использовать плагин напрямую.
В настоящее время я ищу способ реализовать этоиспользуя угловой и хотел бы любую помощь или указания по этому вопросу.
Если вам известно какое-либо решение, которое я не упомянул выше, пожалуйста, оставьте ответ или напишите мне ссылку в комментариях.