Запрещаем браузеру Google Chrome сохранять и предлагать сохраненный пароль в нашем приложении на Vue.js(v2)
Мир стоит вверх ногами. Корпорация добра печется о нашей безопасности. И в то же время делает все, чтобы наши секреты стали достоянием гласности. Это я о политике гугл в плане сохранения логин-паролей в браузере, через него в аккаунте и о доступности всего нашего секретного добра всем, кто сможет подойти к нашим компьютерам.
Да, удобно. Но небезопасно. И временами очень вредно.
Запустил я очередной проект на работе. И самой большой проблемой по опыту старого проекта было то, что сотрудники вовсю пользовались автосохраненим паролей, поэтому под Васей мог сидеть Сергей и ни о какой нормальной аутентификации, а тем более разраничении прав доступа речи идти не могло.
Сначала двинулся в сторону того же гугла — как отключить или запретить автосохранение или автоподстановку сохраненного пароля? Старые рецепты с autocomplete=»off» и autocomplete=»new-password» уже не работают, последний работающий рецепт оказался прост — головную боль следует лечить усекновением болящей. То есть глобальным отключением автосохранения. Но это не вариант. Пусть юзеры дальше балуются своими паролями от почты, соцсетей и прочих радостей жизни, мне не жалко.
Далее последовал легкий инжиниринг. И вот какой результат — если на страничке есть input type=»password» , то при появлении первого символа в адресной строке появляется ключик. И все. Что ты ни делай, какие html тэги ни прописывай — есть password , значит, надо бежать и барину кланяться, предлагая все мыслимые и немыслимые блага от того, что барин позволит сохранить пароль. Ну и потом барин будет весьма доволен, что пароль не надо вспоминать, а просто его вставить.
Хмм. подумал я. И решил — раз у хрома такая нервная реакция на type=»password» , то надо просто от него отказаться и всех делов то!
Сказано — сделано. Изваял компонент, который незамысловато делает простейшую вещь — на экран выводит точечки, а в v-model передает то, что введено. Ну и плюсом отрабатывает клавишу Enter.
Конечно, не обошлось без ограничений. Но они очень малы и незначительны — нельзя курсор перемещать стрелками, только backspace. Но, учитывая, что под точками и так не видно, где и что надо подправить — вероятность испытать колоссальное неудобство от такого ограничения стремится к нулю. Не стал делать кнопочку с глазиком, чтобы посмотреть, что же я ввел, label для input оформил в стиле компонента vuetify, то есть текст-подсказка уползает вверх при фокусе и возвращается при утере фокуса при условии, что ничего не было введено.
Ну и использование такого компонента тоже очень простое — создать .vue файл, импортировать в проект и использовать в шаблоне.
Теперь, собственно, код.
Код под спойлером
Как видим — достаточно простая логика — при вводе очередного символа он заменяется на точку и дублируется в переменную, переданную в v-model . Именно запрет на перемещение курсора в поле ввода позволил реализацию такой логики.
Еще одно замечание — этот компонент не использует инициализацию значением, которое, возможно уже было в v-model -переменной.
Ну и напоследок — код свободный, берите, кто хотите, возможно, кому-то идея подойдет на React или Angular.
Запретить Chrome запрашивать сохранение пароля из поля ввода?
Недавно Chrome был обновлен с раздражающим всплывающим окном, который сходит с иконки в адресной строке и предлагает сохранить пароль на странице, когда пользователь отправляет форму. На этой странице нет другого поля ввода, и ни один другой браузер не рекомендует сохранять этот пароль, поэтому я не знаю, почему делает Chrome. Это пароль, поэтому он не должен быть видимым как обычный текст в поле ввода, но это не пароль, который когда-либо должен быть сохранен — это не учетные данные для входа. На самом деле очень важно, чтобы пользователь компьютера не знал этого пароля — кто-то другой должен ввести его для них, поэтому, если браузер сохранит его, это будет плохо.
Как вы можете запретить Chrome (и всем браузерам) запрашивать этот пароль?

7 ответов
Одно решение или обходное решение — добавить <input type=»password» style=»display:none»/> над полем ввода реального пароля. Chrome только пытается сохранить первый пароль, который он находит, и если он пуст, он не будет вызывать диалог, чтобы сохранить его.
Причина, по которой браузеры игнорируют autocomplete=off заключается в том, что некоторые веб-сайты пытались отключить автоматическое заполнение паролей.
Это не правильно; а в июле 2014 года Firefox стал последним крупным браузером, который наконец-то реализовал это изменение, игнорируя любой веб-сайт, который пытается отключить автозаполнение паролей.
- Bugzilla Bug 956906 — игнорировать autocomplete = «off» при предложении сохранять пароли через менеджер паролей
- Reddit обсуждение
- Объявление Chrome, когда они начали игнорировать autocomplete=off
Любая попытка любого веб-сайта обойти предпочтения браузера неверна, поэтому браузеры игнорируют его. Нет причин, по которым веб-сайт должен пытаться отключить сохранение паролей.
- Хром игнорирует это
- Safari игнорирует это
- IE игнорирует это
- Firefox игнорирует это
Что если я особая снежинка?
Есть люди, которые поднимают хороший пример использования:
У меня есть общий, публичный, компьютер в стиле киоска. Мы не хотим, чтобы кто-то (случайно или намеренно) сохранил свой пароль, чтобы его мог использовать следующий пользователь.
Это не противоречит утверждению:
Любая попытка любого веб-сайта обойти настройки браузера неверна
Это потому, что в случае общего киоска:
- это не веб-сервер, который имеет политику Oddball
- это клиентский пользовательский агент, который имеет политику Oddball
Браузер (общий компьютер) — это тот, который требует, чтобы он не пытался сохранять пароли.
Правильный способ запретить браузеру сохранять пароли
это настроить браузер, чтобы не сохранять пароли.
Поскольку вы заблокировали и управляете этим киоск-компьютером: вы управляете настройками. Это включает в себя возможность сохранения паролей.
В Chrome и Internet Explorer эти параметры настраиваются с помощью групповых политик (например, разделов реестра).
AutoFillEnabled
Включить автозаполнение
Тип данных: логическое значение (REG_DWORD)
Расположение реестра Windows: Программное обеспечение\Политики\Chromium\AutoFillEnabled
Описание: включает функцию автозаполнения Chromium и позволяет пользователям автоматически заполнять веб-формы, используя ранее сохраненную информацию, такую как адрес или данные кредитной карты. Если вы отключите этот параметр, автозаполнение будет недоступно для пользователей. Если вы включите этот параметр или не установите значение, автозаполнение останется под контролем пользователя. Это позволит им настраивать профили автозаполнения и включать или выключать автозаполнение по своему усмотрению.
Пожалуйста, передайте корпоративным менеджерам слово, что попытка отключить автозаполнение пароля неверна. Это так неправильно, что браузеры намеренно игнорируют любого, кто пытается это сделать. Эти люди должны прекратить делать неправильные вещи.
Отключить предложение сохранять пароль HTML
На сайте есть форма регистрации, в хроме после ввода всех данных и submit’а браузер предлагает сохранить логин и пароль. Причем логин он определить не может и получается вот такое (скрин).

На форме стоит свойство autocomplete=»off» .
Подскажите, как это отключить, еще в форме авторизации это норм, но при регистрации сохранение не должно работать.
![]()
![]()
Вообще сохранение паролей в браузере — это фишка самого браузера.
И для каждого клиента определяется настройками его браузера.
Ну как вариант используйте XHR запросы.
Нет отправки формы — нет предложения о сохранении пароля! ))
Неправильный способ
Чтобы не дать сохранить пароль, просто не отправляйте форму. Используйте XMLHttpRequest для отправки данных формы. Пользователи вас возненавидят, но кого же это волнует?
Правильный способ
Сделайте нормальную форму с логином, чтобы браузеру не сносило мозг. Если как логин будет использоваться email, то и поставьте его первым и дайте полю нормальное имя (ну или чего там Хром хочет). Запоминание паролей — это удобно.
P. S. Пихать в форму регистрации кучу опциональных полей — дурной тон. Отпугивает пользователей от регистрации.
Не разрешать хранение паролей или учетных данных — меняем через реестр
Среди параметров операционных систем Windows есть важный параметр безопасности, название которого звучит так — Сетевой доступ: не разрешать хранение паролей или учетных данных для сетевой проверки подлинности. Данный параметр отвечает за то, будет ли система сохранять логины и пароли для дальнейшего использования при проверке подлинности доменом.
Среди локальных групповых политик параметр находится по адресу Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Локальные политики → Параметры безопасности.

Параметр имеет всего два положения — включен или отключен.
Включен — сохранение паролей и учетных данных диспетчером учетных данных на данном компьютере не производится;
Отключен — диспетчер учетных данных сохраняет пароли и учетные данные на этом компьютере для дальнейшего использования при проверке подлинности доменом.
По умолчанию параметр отключен. Если параметр не задан, он также считается отключенным.
Данный параметр имеет связанный с ним ключ в реестре операционной системы: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\disabledomaincreds.

Параметр disabledomaincreds может принимать два значения: 1 (включен) и 0 (отключен). Тип параметра — REG_DWORD.
Для отключения сохранения паролей и учетных данных через командную строку можно воспользоваться командой
Если сохранение логинов и паролей нужно снова включить, воспользуйтесь командой