Подтвердить что ты не робот

Кросс-браузерные методы для отключения кэширования паролей

Сохранение и автоматическая регистрация имени пользователя/пароля - это функция большинства современных браузеров. И пользователь обычно может отключить эту функцию для каждого домена. Но существует ли стандартный способ для самого сайта предотвращать кеширование паролей?

Акцент здесь кросс-браузер, поэтому я при необходимости использовал бы несколько параллельных механизмов.

(Я видел, что кеширование эффективно отключается при наличии нестандартных полей входа, например, лишнее скрытое поле пароля. Но я бы предпочел не зависеть от побочных эффектов, поведение которых неожиданно может измениться в будущем).

И наоборот, существуют ли там браузеры/версии, которые реализуют кэширование паролей без какой-либо функции отключения?

4b9b3361

Ответ 1

Добавьте autocomplete="off" к вашим элементам <input>. Работает во всех современных браузерах, IIRC.

Ответ 2

Я бы предположил, что браузеры сохраняют поля формы при отправке формы. Что делать, если вы использовали AJAX, чтобы получить значение поля пароля, отправить его, а затем очистить поле? Форма никогда не будет представлена, поэтому браузер теоретически никогда не сможет сохранить значения.

Ответ 3

Введите пароль для ввода произвольно сгенерированного имени, которое вы можете распознать только. Сохраните это имя, например, в скрытом поле, а затем используйте его, чтобы получить вставленный пароль. Таким образом, даже если браузер кэширует пароль, он не сможет вернуть его в следующий раз, когда пользователь посещает.

Ваши пользователи, скорее всего, в этот момент начнут кэшировать пароли в постите на стороне монитора, но это действительно совсем другое сражение.

Тот же метод хорошо работает против спама, поскольку большинство ботов полагаются на поиск общих имен полей.

Ответ 4

AFAIK, маскированные поля (те, которые показывают '*' вместо введенного вами символа) никогда не сохраняются для автозаполнения. Вы хотите, чтобы пользователь не помнил пароль на вашем сайте в браузере, защищающем паролем?

Ответ 5

Просто добавьте еще одно поле пароля между именем пользователя и паролем и установите стиль для отображения.

<!-- Username label and text here> ... <--!>
<input type="password" id='txtPasswordDud' style='display: none;' />
<!-- Actual Password label and text here> ... <--!>