Можно ли действительно отключить автозаполнение и автозаполнение полей пароля для современных браузеров? - PullRequest
6 голосов
/ 26 июня 2019

В современных браузерах стандартом автозаполнения и автозаполнения является полное игнорирование 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 и что я, вероятно, не смогу использовать плагин напрямую.

В настоящее время я ищу способ реализовать этоиспользуя угловой и хотел бы любую помощь или указания по этому вопросу.


Если вам известно какое-либо решение, которое я не упомянул выше, пожалуйста, оставьте ответ или напишите мне ссылку в комментариях.

1 Ответ

1 голос
/ 27 июня 2019

Лучшее решение, которое я нашел на данный момент, это использовать type="text" в поле пароля и использовать autocomplete="off" в форме и каждом поле ввода в ней.

Я не буду отмечать это какОтветьте, однако, поскольку у него все еще есть большой недостаток потери функциональности безопасности type="password".Текстовые поля также позволяют проверку орфографии, которую можно отключить с помощью spellcheck="false".Но я читал, что это можно изменить настройками браузера.

Этот вопрос останется без ответа, пока не будет предложено лучшее решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...