Поскольку большинство autocomplete
предложений, включая принятый ответ, не работают в современных веб-браузерах (т. Е. Менеджеры паролей веб-браузера игнорируют autocomplete
), более новым решением является переключение между password
и text
вводит и делает цвет фона соответствующим цвету текста, когда поле представляет собой текстовое поле, которое продолжает скрывать пароль, будучи полем реального пароля, когда пользователь (или программа, подобная KeePass) вводит пароль. Браузеры не просят сохранять пароли, которые хранятся в текстовых полях.
Преимущество этого подхода заключается в том, что он допускает постепенное улучшение и, следовательно, не требует Javascript для поля, функционирующего как поле обычного пароля (вы также можете начать с простого текстового поля и применить тот же подход, но это не совсем HIPAA PHI / PII-совместимый). Этот подход также не зависит от скрытых форм / полей, которые необязательно могут быть отправлены на сервер (поскольку они скрыты), и некоторые из этих приемов также не работают в некоторых современных браузерах.
Плагин jQuery:
https://github.com/cubiclesoft/php-flexforms-modules/blob/master/password-manager/jquery.stoppasswordmanager.js
Соответствующий исходный код по ссылке выше:
(function($) {
$.fn.StopPasswordManager = function() {
return this.each(function() {
var $this = $(this);
$this.addClass('no-print');
$this.attr('data-background-color', $this.css('background-color'));
$this.css('background-color', $this.css('color'));
$this.attr('type', 'text');
$this.attr('autocomplete', 'off');
$this.focus(function() {
$this.attr('type', 'password');
$this.css('background-color', $this.attr('data-background-color'));
});
$this.blur(function() {
$this.css('background-color', $this.css('color'));
$this.attr('type', 'text');
$this[0].selectionStart = $this[0].selectionEnd;
});
$this.on('keydown', function(e) {
if (e.keyCode == 13)
{
$this.css('background-color', $this.css('color'));
$this.attr('type', 'text');
$this[0].selectionStart = $this[0].selectionEnd;
}
});
});
}
}(jQuery));
Демо-версия:
https://barebonescms.com/demos/admin_pack/admin.php
Нажмите «Добавить запись» в меню и затем прокрутите вниз до страницы «Модуль: Остановить менеджер паролей».
Отказ от ответственности: хотя этот подход работает для зрячих людей, могут возникнуть проблемы с программным обеспечением для чтения с экрана. Например, программа чтения с экрана может прочитать вслух пароль пользователя, потому что видит текстовое поле. Также могут быть другие непредвиденные последствия использования вышеуказанного плагина. Изменение функциональности встроенного веб-браузера должно выполняться с осторожностью при тестировании широкого спектра условий и крайних случаев.