Отключить функцию браузера "Сохранить пароль"

Одна из радостей работы в государственном агентстве здравоохранения заключается в том, что приходится иметь дело со всей паранойей вокруг обращения с PHI (Защищенной медицинской информацией). Не поймите меня неправильно, я за то, что делаю все возможное, чтобы защитить личную информацию людей (здоровье, финансы, привычки серфинга и т. Д.), Но иногда люди немного нервничают.

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

Вопрос: есть ли у сайта способ сказать браузеру не предлагать запоминать пароли? Я давно занимаюсь веб-разработкой, но не знаю, сталкивался ли я с этим раньше.

Любая помощь приветствуется.

37 ответов

Решение

Я не уверен, что это будет работать во всех браузерах, но вы должны попробовать установить autocomplete="off" в форме.

<form id="loginForm" action="login.cgi" method="post" autocomplete="off">

Самый простой и простой способ отключить запросы хранения формы и пароля и предотвратить кэширование данных формы в истории сеанса - это использовать атрибут элемента автозаполнения со значением "off".

От http://developer.mozilla.org/En/How_to_Turn_Off_Form_Autocompletion

Некоторые незначительные исследования показывают, что это работает в IE, но я не оставлю никаких гарантий;)

@Joseph: Если строгое требование пройти проверку XHTML с фактической разметкой (хотя и не знаю, почему это так), вы можете теоретически добавить этот атрибут впоследствии с помощью javascript, но тогда пользователи с отключенным js (вероятно, незначительное количество вашей пользовательской базы). или ноль, если ваш сайт требует js) все равно будут сохранены их пароли.

Пример с jQuery:

$('#loginForm').attr('autocomplete', 'off');

Просто используйте

readonly onfocus="this.removeAttribute('readonly');"

в дополнение к

автозаполнения = "выключено"

на вход (ы), которые вы не хотите помнить данные формы (username, passwordи т. д.), как показано ниже:

<input type="text" name="UserName" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

<input type="password" name="Password" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

Протестировано на последних версиях основных браузеров, т.е. Google Chrome, Mozilla Firefox, Microsoft Edgeи т. д. и работает как шарм. Надеюсь это поможет...

Я боролся с этой проблемой некоторое время, с уникальным поворотом к проблеме. Привилегированные пользователи не могут работать с сохраненными паролями, но это нужно обычным пользователям. Это означало, что привилегированные пользователи должны были войти в систему дважды, во второй раз принудительно не сохраняя пароли.

С этим требованием стандарт autocomplete="off" Метод работает не во всех браузерах, поскольку пароль может быть сохранен при первом входе в систему. Коллега нашел решение заменить поле пароля, когда оно было сфокусировано новым полем пароля, а затем сфокусироваться на поле нового пароля (затем подключить тот же обработчик событий). Это сработало (за исключением того, что это вызвало бесконечный цикл в IE6). Может быть, был способ обойти это, но это вызвало у меня мигрень.

Наконец, я попытался просто ввести имя пользователя и пароль за пределы формы. К моему удивлению, это сработало! Он работал на IE6 и текущих версиях Firefox и Chrome на Linux. Я не проверял это дальше, но я подозреваю, что это работает в большинстве, если не во всех браузерах (но меня не удивит, если бы там был браузер, которому было бы все равно, если бы не было формы).

Вот пример кода и jQuery, чтобы заставить его работать:

<input type="text" id="username" name="username"/>
<input type="password" id="password" name="password"/>

<form id="theForm" action="/your/login" method="post">
  <input type="hidden" id="hiddenUsername" name="username"/>
  <input type="hidden" id="hiddenPassword" name="password"/>
  <input type="submit" value="Login"/>
</form>

<script type="text/javascript" language="JavaScript">
  $("#theForm").submit(function() {
    $("#hiddenUsername").val($("#username").val());
    $("#hiddenPassword").val($("#password").val());
  });
  $("#username,#password").keypress(function(e) {
    if (e.which == 13) {
      $("#theForm").submit();
    }
  });
</script>

Ну, это очень старый пост, но все же я дам свое решение, которого моя команда пыталась достичь долгое время. Мы просто добавили новое поле ввода type="password" внутри формы, обернули его в div и сделали div скрытым. Убедитесь, что этот div находится перед фактическим вводом пароля. Это сработало для нас и не дало никакой опции Сохранить пароль

Plunk - http://plnkr.co/edit/xmBR31NQMUgUhYHBiZSg?p=preview

HTML:

<form method="post" action="yoururl">
      <div class="hidden">
        <input type="password"/>
      </div>
      <input type="text" name="username" placeholder="username"/>
      <input type="password" name="password" placeholder="password"/>
    </form>

CSS:

.hidden {display:none;}

Вы можете запретить браузеру сопоставлять формы путем случайного выбора имени, используемого для поля пароля в каждом шоу. Затем браузер видит пароль для того же URL-адреса, но не может быть уверен, что это тот же пароль. Может быть, это контролирует что-то еще.

Обновление: обратите внимание, что это должно быть в дополнение к использованию автозаполнения или других тактик, а не замене их по причинам, указанным другими.

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

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

Самый чистый способ - это использовать autocomplete="off" атрибут tag, но Firefox не выполняет его должным образом при переключении полей с помощью Tab.

Единственный способ остановить это - добавить поле поддельного скрытого пароля, которое обманывает браузер, чтобы заполнить там пароль.

<input type="text" id="username" name="username"/>
<input type="password" id="prevent_autofill" autocomplete="off" style="display:none" tabindex="-1" />
<input type="password" id="password" autocomplete="off" name="password"/>

Это ужасный хак, потому что вы меняете поведение браузера, что следует считать плохой практикой. Используйте его, только если вам это действительно нужно.

Примечание: это эффективно остановит автозаполнение пароля, потому что FF "сохранит" значение #prevent_autofill (который пуст) и будет пытаться заполнить любые сохраненные пароли там, так как он всегда использует первый type="password" вход, который он находит в DOM после соответствующего ввода имени пользователя.

Я проверил, что добавление autocomplete="off" в тег формы во всех основных браузерах. На самом деле, большинство людей в США пока используют IE8.

  1. IE8, IE9, IE10, Firefox, Safari работают нормально.

    Браузер не спрашивает "сохранить пароль". Кроме того, ранее сохраненные имя пользователя и пароль не заполняются.

  2. Chrome и IE 11 не поддерживают функцию autocomplete="off"
  3. FF поддерживает автозаполнение = "выкл". но иногда существующие сохраненные учетные данные заполняются.

Обновлено 11 июня 2014 г.

Наконец, ниже приведено кросс-браузерное решение с использованием javascript, и оно отлично работает во всех браузерах.

Необходимо удалить тег "form" в форме входа. После проверки на стороне клиента поместите эти учетные данные в скрытую форму и отправьте их.

Также добавьте два метода. один для проверки "validateLogin()" и другой для прослушивания ввода события при нажатии ввода в текстовом поле / пароле / кнопке "checkAndSubmit()". потому что теперь форма входа не имеет тега формы, поэтому введите событие не работает здесь.

HTML

<form id="HiddenLoginForm" action="" method="post">
<input type="hidden" name="username" id="hidden_username" />
<input type="hidden" name="password" id="hidden_password" />
</form>

Username: <input type="text" name="username" id="username" onKeyPress="return checkAndSubmit(event);" /> 
Password: <input type="text" name="password" id="password" onKeyPress="return checkAndSubmit(event);" /> 
<input type="button" value="submit" onClick="return validateAndLogin();" onKeyPress="return checkAndSubmit(event);" /> 

Javascript

//For validation- you can modify as you like
function validateAndLogin(){
  var username = document.getElementById("username");
  var password = document.getElementById("password");

  if(username  && username.value == ''){
    alert("Please enter username!");
    return false;
  }

  if(password && password.value == ''){
    alert("Please enter password!");
    return false;
  }

  document.getElementById("hidden_username").value = username.value;
  document.getElementById("hidden_password").value = password.value;
  document.getElementById("HiddenLoginForm").submit();
}

//For enter event
function checkAndSubmit(e) {
 if (e.keyCode == 13) {
   validateAndLogin();
 }
}

Удачи!!!

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

Затем пользователь немедленно последует совету, запишет пароль на заметке и прикрепит его к своему монитору.

То, что я делал, - это сочетание autocomplete="off" и очистки полей пароля с использованием javascript / jQuery.

Пример jQuery:

$(function() { 
    $('#PasswordEdit').attr("autocomplete", "off");
    setTimeout('$("#PasswordEdit").val("");', 50); 
});

Используя setTimeout() вы можете подождать, пока браузер заполнит поле, прежде чем очистить его, иначе браузер всегда будет автоматически заполняться после того, как вы очистите поле.

Поскольку autocomplete="off" не работает для полей пароля, нужно полагаться на javascript. Вот простое решение, основанное на ответах, найденных здесь.

Добавьте атрибут data-password-autocomplete="off" в поле вашего пароля:

<input type="password" data-password-autocomplete="off">

Включить следующие JS:

$(function(){
    $('[data-password-autocomplete="off"]').each(function() {
        $(this).prop('type', 'text');
        $('<input type="password"/>').hide().insertBefore(this);
        $(this).focus(function() {
            $(this).prop('type', 'password');
        });
    });     
});

Это решение работает как для Chrome, так и для FF.

Если autocomplete="off" не работает... удалите тег формы и используйте вместо него тег div, а затем передайте значения формы с помощью jquery на сервер. Это сработало для меня.

Это мой html-код для решения. Он работает для Chrome-Safari-Internet Explorer. Я создал новый шрифт, все символы которого выглядят как "●". Затем я использую этот шрифт для текста своего пароля. Примечание. Имя моего шрифта - "пароль секретный".

<style type="text/css">
         #login_parola {
             font-family: 'passwordsecretregular' !important;
            -webkit-text-security: disc !important;
            font-size: 22px !important;
         }
    </style>


<input type="text" class="w205 has-keyboard-alpha"  name="login_parola" id="login_parola" onkeyup="checkCapsWarning(event)"  
   onfocus="checkCapsWarning(event)" onblur="removeCapsWarning()" onpaste="return false;" maxlength="32"/>

Я проверил много решений. Динамическое имя поля пароля, несколько полей пароля (невидимые для поддельных), изменение типа ввода с "текст" на "пароль", autocomplete="off", autocomplete="new-password",... но ничего не решило с недавними браузер.

Чтобы избавиться от пароля, запомните, я наконец обработал пароль как поле ввода и "размыл" набранный текст.

Это менее "безопасно", чем поле родного пароля, так как выделение напечатанного текста будет показывать его как открытый текст, но пароль не запоминается. Это также зависит от того, активирован ли Javascript.

Вам нужно будет оценить риск использования предложенного ниже предложения и опции запоминания пароля из навигатора.

Хотя запоминание пароля может управляться пользователем (отключено для каждого сайта), это подходит для персонального компьютера, а не для "общего" или общего компьютера.

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

<input style="background-color: rgb(239, 179, 196); color: black; text-shadow: none;" name="password" size="10" maxlength="30" onfocus="this.value='';this.style.color='black'; this.style.textShadow='none';" onkeypress="this.style.color='transparent'; this.style.textShadow='1px 1px 6px green';" autocomplete="off" type="text">

Люди понимают, что атрибут "автозаполнение" работает большую часть времени, но опытные пользователи могут обойти его, используя букмарклет.

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

Мой обходной путь js (jquery) - изменить тип ввода пароля на текст в форме отправки. Пароль может стать видимым на секунду, поэтому я также скрываю ввод непосредственно перед этим. Я бы предпочел не использовать это для форм входа в систему, но это полезно (вместе с autocomplete="off"), например, внутри административной части сайта.

Попробуйте поместить это в консоль (с помощью jquery), прежде чем отправлять форму.

$('form').submit(function(event) {
    $(this).find('input[type=password]').css('visibility', 'hidden').attr('type', 'text');
});

Протестировано на Chrome 44.0.2403.157 (64-разрядная версия).

У меня есть работа вокруг, которая может помочь.

Вы можете сделать собственный взлом шрифта. Итак, создайте собственный шрифт, например, со всеми символами в виде точки / круга / звезды. Используйте это как собственный шрифт для вашего сайта. Проверьте, как это сделать в Inkscape: как сделать свой собственный шрифт

Тогда в вашем логине используйте:

<form autocomplete='off'  ...>
   <input type="text" name="email" ...>
   <input type="text" name="password" class="password" autocomplete='off' ...>
   <input type=submit>
</form>

Затем добавьте свой CSS:

@font-face {
    font-family: 'myCustomfont';
    src: url('myCustomfont.eot');
    src: url('myCustomfont?#iefix') format('embedded-opentype'),
         url('myCustomfont.woff') format('woff'),
         url('myCustomfont.ttf') format('truetype'),
         url('myCustomfont.svg#myCustomfont') format('svg');
    font-weight: normal;
    font-style: normal;

}
.password {
  font-family:'myCustomfont';
}

Довольно кросс-браузер совместим. Я пробовал IE6+, FF, Safari и Chrome. Просто убедитесь, что конвертируемый шрифт oet не поврежден. Надеюсь, поможет?

Самый простой способ решить эту проблему - поместить поля INPUT вне тега FORM и добавить два скрытых поля внутри тега FORM. Затем в слушателе события submit перед отправкой данных формы на сервер скопируйте значения из видимого ввода в невидимые.

Вот пример (вы не можете запустить его здесь, так как действие формы не настроено на сценарий реального входа):

<!doctype html>
<html>
<head>
  <title>Login & Save password test</title>
  <meta charset="utf-8">
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>

  <body>
      <!-- the following fields will show on page, but are not part of the form -->
      <input class="username" type="text" placeholder="Username" />
      <input class="password" type="password" placeholder="Password" />

      <form id="loginForm" action="login.aspx" method="post">
        <!-- thw following two fields are part of the form, but are not visible -->
        <input name="username" id="username" type="hidden" />
        <input name="password" id="password" type="hidden" />
        <!-- standard submit button -->
        <button type="submit">Login</button>
      </form>

    <script>
      // attache a event listener which will get called just before the form data is sent to server
      $('form').submit(function(ev) {
        console.log('xxx');
        // read the value from the visible INPUT and save it to invisible one
        // ... so that it gets sent to the server
        $('#username').val($('.username').val());
        $('#password').val($('.password').val());
      });
    </script>

  </body>
</html>

Я пробовал выше autocomplete="off" и еще ничего удачного. Если вы используете Angle JS, я рекомендую нажать кнопку и ng-click.

<button type="button" class="" ng-click="vm.login()" />

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

Спасибо за вопрос и ответы.

Реальная проблема гораздо глубже, чем просто добавление атрибутов в ваш HTML - это общая проблема безопасности, поэтому люди изобрели аппаратные ключи и другие сумасшедшие вещи для безопасности.

Представьте, что у вас есть autocomplete="off", отлично работающий во всех браузерах. Это поможет с безопасностью? Конечно же нет. Пользователи будут записывать свои пароли в учебниках, на наклейках, прикрепленных к монитору, где их может увидеть каждый посетитель офиса, сохранять их в текстовые файлы на рабочем столе и так далее.

Как правило, веб-приложение и веб-разработчик не несут никакой ответственности за безопасность конечного пользователя. Конечные пользователи могут защитить себя только. В идеале они ДОЛЖНЫ хранить все пароли в своей голове и использовать функцию сброса пароля (или связаться с администратором) на случай, если они забудут об этом. В противном случае всегда будет риск, что пароль может быть как-то виден и украден.

Так что либо у вас есть какая-то сумасшедшая политика безопасности с аппаратными ключами (например, некоторые банки предлагают интернет-банкинг, который в основном использует двухфакторную аутентификацию), либо БЕЗ БЕЗОПАСНОСТИ в принципе. Ну, это, конечно, немного преувеличено. Важно понять, от чего вы пытаетесь защитить:

  1. Несанкционированный доступ. Простая форма входа в систему достаточно в принципе. Иногда принимаются дополнительные меры, такие как случайные вопросы безопасности, CAPTCHA, защита паролем и т. Д.
  2. Учетные данные нюхают. HTTPS ОБЯЗАН, если люди получают доступ к вашему веб-приложению из общедоступных точек доступа Wi-Fi и т. Д. Отметьте, что даже имея HTTPS, ваши пользователи должны регулярно менять свои пароли.
  3. Инсайдерская атака. Существует два таких примера, начиная от простого кражи ваших паролей из браузера или тех, которые вы записали где-то на рабочем столе (не требует никаких навыков в области ИТ) и заканчивая подделкой сеансов и перехватом трафика локальной сети (даже зашифрованного) и дальнейший доступ к веб-приложению, как будто это был другой конечный пользователь.

В этом конкретном посте я вижу неадекватные требования, предъявляемые к разработчику, которые он никогда не сможет решить из-за характера проблемы - безопасности конечного пользователя. Моя субъективная точка зрения заключается в том, что разработчик должен сказать "НЕТ" и указать на проблему требований, а не тратить время на такие задачи, если честно. Это не обязательно делает вашу систему более безопасной, скорее это приведет к случаям с наклейками на мониторах. К сожалению, некоторые боссы слышат только то, что хотят услышать. Однако, если бы я был вами, я бы попытался объяснить, откуда возникла настоящая проблема, и что autocomplete="off" не решит ее, если только это не заставит пользователей хранить все свои пароли исключительно в своей голове! Разработчик, в свою очередь, не может полностью защитить пользователей, пользователям необходимо знать, как пользоваться системой, и в то же время не раскрывать свою конфиденциальную / защищенную информацию, и это выходит далеко за рамки аутентификации.

Маркус поднял замечательную мысль. Я решил посмотреть autocomplete атрибут и получил следующее:

Единственным недостатком использования этого атрибута является то, что он не является стандартным (он работает в браузерах IE и Mozilla) и может привести к сбою проверки XHTML. Я думаю, что это тот случай, когда разумно нарушить валидацию. ( источник)

Поэтому я должен сказать, что хотя он не работает на 100% по всем направлениям, он обрабатывается в основных браузерах, так что это отличное решение.

Один из известных мне способов заключается в использовании (например) JavaScript для копирования значения из поля пароля перед отправкой формы.

Основная проблема заключается в том, что решение связано с JavaScript.

Опять же, если он может быть привязан к JavaScript, вы можете также хэшировать пароль на стороне клиента перед отправкой запроса на сервер.

Поскольку большая часть 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

Нажмите "Добавить запись" в меню, а затем прокрутите вниз страницы до "Модуль: Остановить менеджер паролей".

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

Столкнувшись с той же проблемой HIPAA и нашел относительно простое решение,

  1. Создайте скрытое поле пароля с именем поля в виде массива.

    <input type="password" name="password[]" style="display:none" />
    
  2. Используйте тот же массив для фактического поля пароля.

    <input type="password" name="password[]" />
    

Браузер (Chrome) может предложить вам "Сохранить пароль", но независимо от того, выберет ли пользователь сохранение, при следующем входе в систему пароль автоматически заполнит поле скрытого пароля, нулевой слот в массиве, оставив 1-й слот пустым.

Я попытался определить массив, такой как "пароль [part2]", но он все еще помнил. Я думаю, что он отбрасывает его, если это неиндексированный массив, потому что у него нет выбора, кроме как отбросить его в первую очередь.

Затем вы используете ваш язык программирования для доступа к массиву, например, PHP,

echo $_POST['password'][1];
      <input type="text" id="mPassword" required="required" title="Valid password required" autocomplete="off" list="autocompleteOff" readonly onfocus="this.removeAttribute('readonly');" style="text-security:disc; -webkit-text-security:disc;" oncopy="return false;" onpaste="return false;"/>

Для тех, кто все еще ищет решение проблемы с отключением сохранения пароля.

Этот код работает у меня в Chrome, Firefox и Opera по состоянию на 24 октября 2023 г.

      <script type="text/javascript">
   jQuery(document).ready(function($) {
     document.getElementById( "user_login" ).autocomplete = "off";
     document.getElementById( "user_pass" ).autocomplete = "off";
     document.getElementById('#createuser').attr('autocomplete', 'off');
} );
</script>

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

<input type="text" style="display:none">
<input type="text" name="OriginalLoginTextBox">

<input type="password" style="display:none">
<input type="text" name="OriginalPasswordTextBox">

Это нормально работает для IE11 и Chrome 44.0.2403.107

Есть ли у сайта способ сказать браузеру не предлагать запоминать пароли?

Сайт сообщает браузеру, что это пароль с помощью <input type="password">, Поэтому, если вы должны сделать это с точки зрения веб-сайта, вам придется это изменить. (Очевидно, я не рекомендую это).

Лучшим решением было бы настроить пользователя для своего браузера, чтобы он не запоминал пароли.

autocomplete="off" не работает для отключения менеджера паролей в Firefox 31 и, скорее всего, не в некоторых более ранних версиях.

Ознакомьтесь с обсуждением этой проблемы в Mozilla: https://bugzilla.mozilla.org/show_bug.cgi?id=956906

Мы хотели использовать второе поле пароля для ввода одноразового пароля, сгенерированного токеном. Теперь мы используем ввод текста вместо ввода пароля.:-(

На сегодняшний день наиболее многообещающим ответом, похоже, является @murat. Я сам тестировал его в Firefox, но, как другие предлагали в комментариях, он по-прежнему запрашивает пароль в первый раз. Тогда этого не произойдет, независимо от того, сколько раз вы повторно вводите пароль (в моем случае отправка с использованием Ajax). Если страница перезагружается, описанное выше поведение повторяется.

Я подумал, что у банковских сайтов должна быть такая функциональность, поэтому я проверил onlinesbi.com, и он отлично справляется.! Он не просит хранить пароль в любом браузере. Я попытался проверить источник, но не смог понять, он использует комбинацию скрытых элементов плюс автозаполнение и js. Я не мог понять этого, но на этой платформе их много, и я надеюсь, что кто-то определенно выяснит и разместит это здесь.

Другие вопросы по тегам