Поскольку большинство предложений 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
Нажмите «Добавить запись» в меню, а затем прокрутите страницу вниз до «Модуль: остановить диспетчер паролей».
Отказ от ответственности: хотя этот подход работает для зрячих людей, могут возникнуть проблемы с программным обеспечением для чтения с экрана. Например, программа чтения с экрана может прочитать пароль пользователя вслух, потому что видит текстовое поле. Также могут быть другие непредвиденные последствия использования вышеуказанного плагина. Изменять функциональные возможности встроенного веб-браузера следует осторожно, тестируя самые разные условия и крайние случаи.
person
CubicleSoft
schedule
05.03.2018