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

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

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

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

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

414
задан 15.04.2020, 04:31

9 ответов

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

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

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

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

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

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

Пример с jQuery:

$('#loginForm').attr('autocomplete', 'off');
321
ответ дан 15.04.2020, 04:33
  • 1
    Мне нравится, как версия Linux несколько раз более длительна, чем версия BSD. – Maxy-B 21.10.2019, 20:24
  • 2
    Просто к вашему сведению Microsoft решила, что Internet Explorer 11 больше не будет соблюдать autocomplete="off" для input type="password" поля. msdn.microsoft.com/en-us/library/ie/ms533486%28v=vs.85%29.aspx – JW Lim 15.04.2020, 04:33
  • 3
    Так же, как @JWLim упомянутая поддержка отбрасывания IE 11 отключения пароля сохраняют функциональность, Firefox - также. bugzilla.mozilla.org/show_bug.cgi?id=956906 – Gregory Cosmo Haun 15.04.2020, 04:33
  • 4
    Этот doesn' t работают над хромом. – arviman 15.04.2020, 04:34
  • 5
    Просто быстрый комментарий, так как это изменяется, HTML5, добавляет, что автоматическое заполнение приписывает спецификации, таким образом, это допустимо теперь. – Tyler Egeto 15.04.2020, 04:34

Одним путем я знаю, должен использовать (например), JavaScript для копирования значения из поля пароля прежде, чем отправить форму.

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

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

0
ответ дан 15.04.2020, 04:32
  • 1
    Хеширование на стороне клиента не является никакой заменой для хеширования на стороне сервера. I' m сомнительный, относительно ли it' s любая справка вообще (если сделано, кроме того). – Brilliand 15.04.2020, 04:33
  • 2
    Разрешение хеширующий на стороне клиента опасно, потому что это означает что взломщик doesn' t должен взломать пароль от хеша, они могут просто использовать хеш для входа в систему. Хеш становится эквивалентным паролю. – rjmunro 15.04.2020, 04:33
  • 3
    Я соглашаюсь с Brilliand, что хеш на клиенте полезен, только если у Вас также есть хеш на сервере прежде, чем сохранить пароль в Вашей базе данных. Однако наличие хеша на стороне клиента может помочь определенному количеству проблем с мужчинами в середине. Это сказанное, начиная с кода будет доступно (по крайней мере, на общедоступных сайтах) хакерам, это, вероятно, isn' t столь полезный, как это может казаться. – Alexis Wilke 15.04.2020, 04:33

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

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

7
ответ дан 15.04.2020, 04:36
  • 1
    Необходимо помнить, что это правительство сайт, и такие вещи с политической подоплекой. Если кто-то высоко говорит, " это не должно работать как this" тогда что реалистично, не часть уравнения. Проблема может быть перемещена в Него примечания, но политика в отношении тех для различного отдела для обработки - проблема была углублена;-) И I' m на самом деле являющийся серьезным. – Jason 15.04.2020, 04:36

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

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

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

16
ответ дан 15.04.2020, 04:37
  • 1
    [@Joel] (#32409), который мог бы препятствовать тому, чтобы форма была автозаполнена, но это предотвратит браузер, с того времени прося сохранять пароль для этого , предположил новая форма? – Joseph Pecoraro 15.04.2020, 04:37
  • 2
    Я don' t полагают, что это будет работать теперь. В FF 13 у меня есть форма с несколькими полями пароля, все с различными именами. FF, как только это сохраняет пароль для той страницы, засовывает сохраненный пароль во ВСЕ поля пароля. Это не заботится о том, что название полей (у меня есть " new_password" и " old_password" например, и сохраненный пароль выводится в них обоих). В этой конкретной форме I don' t имеют имя пользователя для сохранения пароля против - всего два поля пароля, в случае, если это имеет значение. – Jason 15.04.2020, 04:37
  • 3
    Поклоны @Jason, давая полю пароля новый UUID для имени каждый раз не сделали ничего для нанесения поражения browser' s пытается заполнить его. – F. P. Freely 15.04.2020, 04:38

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

14
ответ дан 15.04.2020, 04:41
  • 1
    btw it' s аутентификация не аутентификация – Jonathan. 15.04.2020, 04:41
  • 2
    Жалость @Jonathan, я предпочитаю аутентификация – Ian Boyd 15.04.2020, 04:42

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

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

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

-1
ответ дан 15.04.2020, 04:43
  • 1
    Кроме того, если браузер видит вход обычного текста вместо ввода пароля, it' s, вероятно, чтобы спрятать пароль в автоматическое заполнение формы база данных вместо базы данных пароля... и затем предложить его или даже автозаполнить его на некотором несвязанном веб-сайте! Так you' ре, на самом деле даже проигрывающее материально чем тогда, когда Вы запустили. – zwol 15.04.2020, 04:44
  • 2
    @karl: Если you' ve получил шпионское ПО/вирус на Вашем компьютере тогда, никакой объем защиты звездочки не собирается сохранить Вас. It' s не более трудный для установленного приложения прервать what' s вводимый в ' password' поле, чем он должно сделать то же для поля простого текста. – Markus Olsson 15.04.2020, 04:44
  • 3
    Как очевидно, что Вы не рекомендуете изменить входное поле типа? Разработка проблем безопасности была бы полезна. – Karl 15.04.2020, 04:45
  • 4
    @karl: потому что необходимость ввести пароль в открытую позволяет " плечо surfing" процесс подбирания пароля путем рассмотрения экрана whil это вводится. – David Schmitt 15.04.2020, 04:45
  • 5
    Не только человеческое перемещение плеча, но и шпионское ПО или вирусы могут наблюдать Ваш экран и видеть то, что было введено в полях простого текста. – Karl 15.04.2020, 04:46

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

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

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

autocomplete = "off"

на вход (ы), которые вы не хотите запоминать данные формы (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 и т. д., и работает как брелок. Надеюсь, это поможет ...

33
ответ дан 15.04.2020, 04:46

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

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

    Браузер не запрашивает «сохранить пароль». Кроме того, ранее сохраненное имя пользователя & amp; пароль не заполнен.

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

Обновлено 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();
 }
}

Удачи !!!

12
ответ дан 15.04.2020, 04:47
  • 1
    Хотя этот ответ предоставляет полезную информацию, он действительно не отвечает на вопрос как , чтобы мешать браузерам сохранить пароли. – JW Lim 15.04.2020, 04:48
  • 2
    @JW Lim, я обновил ответ. Изучите его. Спасибо! – Asik 15.04.2020, 04:49

Markus поднял большой вопрос. Я решил искать эти autocomplete атрибут и получил следующее:

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

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

1
ответ дан 15.04.2020, 04:49
  • 1
    i' m имеющий эту проблему проверки согласно w3c стандартам. Вещь, я хочу эту функциональность для веб-сайта Мобильного банкинга. I' ve предположение, что мобильные браузеры достаточно строги и могут иногда портить форму, если некоторый недопустимый атрибут используется. Что Вы рекомендуете в этом случае? – asgs 15.04.2020, 04:49
  • 2
    Я думаю, что это - старый стиль взглядов. Много недавних мобильных браузеров создаются прочь WebKit и или поддерживают или корректно игнорируют этот атрибут. Я не знаю, как другие страны или браузеры в более старых сотовых телефонах обрабатывают это, но корректно обрабатывающие атрибуты / элементы, которые не известны, фундаментально для хороший браузер. Это " будущее proofs" браузер для не повреждения как сеть развивается. Это может отстать (не реализующий новые опции), но это won' t повреждение. Надежда, которая помогает =), – Joseph Pecoraro 15.04.2020, 04:50
  • 3
    Это должен быть скорее комментарий к отнесенному ответу, чем ответ на сам вопрос. – Török Gábor 15.04.2020, 04:50

Теги

Похожие вопросы