Одна из радостей работы в государственном учреждении здравоохранения заключается в том, что приходится иметь дело со всей паранойей вокруг обращения с PHI (Защищенной медицинской информацией). Не поймите меня неправильно, я за то, что я делаю все возможное, чтобы защитить личную информацию людей (здоровье, финансы, привычки серфинга и т. Д.), Но иногда люди немного нервничают.
Пример: один из наших государственных заказчиков недавно узнал, что браузер предоставляет удобную функцию для сохранения вашего пароля. Мы все знаем, что это было там какое-то время и является совершенно необязательным, и конечный пользователь должен решить, будет ли это разумное решение использовать или нет. Тем не менее, в настоящий момент наблюдается некоторый шум, и мы должны найти способ отключить эту функцию для нашего сайта.
Вопрос : есть ли у сайта способ сказать браузеру не предлагать запоминать пароли? Я давно занимаюсь веб-разработкой, но не знаю, сталкивался ли я с этим раньше.
Любая помощь приветствуется.
источник
Ответы:
Я не уверен, что это будет работать во всех браузерах, но вы должны попробовать установить autocomplete = "off" в форме.
Некоторые незначительные исследования показывают, что это работает в IE, но я не оставлю никаких гарантий;)
@Joseph : Если строгое требование пройти проверку XHTML с фактической разметкой (хотя не знаю, почему это так), вы можете теоретически добавить этот атрибут впоследствии с помощью javascript, но тогда пользователи с отключенным js (вероятно, незначительное количество вашей пользовательской базы). или ноль, если ваш сайт требует js) все равно будут сохранены их пароли.
Пример с jQuery:
источник
autocomplete="off"
дляinput type="password"
полей. msdn.microsoft.com/en-us/library/ie/ms533486%28v=vs.85%29.aspxдля входных данных, которые вы не хотите, чтобы они запоминали данные формы (
username
,password
и т. д.), как показано ниже:Испытано на последние версии основных браузеров , то есть
Google Chrome
,Mozilla Firefox
,Microsoft Edge
и т.д. , и работает как шарм. Надеюсь это поможет.источник
Я боролся с этой проблемой некоторое время, с уникальным поворотом к проблеме. Привилегированные пользователи не могут работать с сохраненными паролями, но это нужно обычным пользователям. Это означало, что привилегированные пользователи должны были войти в систему дважды, во второй раз принудительно не сохраняя пароли.
С этим требованием стандартный
autocomplete="off"
метод работает не во всех браузерах, поскольку пароль может быть сохранен при первом входе в систему. Коллега нашел решение заменить поле пароля, когда оно было сфокусировано на поле нового пароля, а затем сосредоточиться на поле нового пароля (затем подключить тот же обработчик событий). Это сработало (за исключением того, что это вызвало бесконечный цикл в IE6). Может быть, был способ обойти это, но это вызвало у меня мигрень.Наконец, я попытался просто ввести имя пользователя и пароль за пределы формы. К моему удивлению, это сработало! Он работал на IE6 и текущих версиях Firefox и Chrome на Linux. Я не проверял это дальше, но я подозреваю, что это работает в большинстве, если не во всех браузерах (но меня не удивит, если бы там был браузер, которому было бы все равно, если бы не было формы).
Вот пример кода и jQuery, чтобы заставить его работать:
источник
Ну, это очень старый пост, но все же я дам свое решение, которого моя команда пыталась достичь долгое время. Мы просто добавили новое поле ввода type = "password" внутри формы, обернули его в div и сделали div скрытым. Убедитесь, что этот div находится перед фактическим вводом пароля. Это сработало для нас и не дало никакой опции Сохранить пароль
Plunk - http://plnkr.co/edit/xmBR31NQMUgUhYHBiZSg?p=preview
HTML:
CSS:
источник
Вы можете запретить браузеру сопоставлять формы путем случайного выбора имени, используемого для поля пароля в каждом шоу. Затем браузер видит пароль для того же URL-адреса, но не может быть уверен, что это тот же пароль . Может быть, это контролирует что-то еще.
Обновление: обратите внимание, что это должно быть в дополнение к использованию автозаполнения или других тактик, а не замене их по причинам, указанным другими.
Также обратите внимание, что это только запретит браузеру автоматически заполнять пароль. Это не помешает ему сохранить пароль на любом уровне произвольной защиты, которую браузер выберет для использования.
источник
Используйте настоящую двухфакторную аутентификацию, чтобы избежать единственной зависимости от паролей, которые могут храниться в гораздо большем количестве мест, чем кеш браузера пользователя.
источник
Самый чистый способ - использовать
autocomplete="off"
атрибут tag, но Firefox не выполняет его должным образом при переключении полей с помощью Tab.Единственный способ остановить это - добавить поле поддельного скрытого пароля, которое обманывает браузер, чтобы заполнить там пароль.
Это ужасный хак, потому что вы меняете поведение браузера, что следует считать плохой практикой. Используйте его, только если вам это действительно нужно.
Примечание: это фактически остановит автозаполнение пароля, потому что FF «сохранит» значение
#prevent_autofill
(которое является пустым) и попытается заполнить любые сохраненные пароли там, так как он всегда использует первыйtype="password"
ввод, который он находит в DOM после соответствующего «имени пользователя» вход.источник
Я проверил, что добавление autocomplete = "off" в тег формы во всех основных браузерах. На самом деле, большинство людей в США пока используют IE8.
Обновлено 11 июня 2014 г.
Наконец, ниже приведено кросс-браузерное решение с использованием javascript, и оно отлично работает во всех браузерах.
Необходимо удалить тег «form» в форме входа. После проверки на стороне клиента поместите эти учетные данные в скрытую форму и отправьте их.
Также добавьте два метода. один для проверки «validateLogin ()» и другой для прослушивания ввода события при нажатии кнопки ввода в текстовом поле / пароле / кнопке «checkAndSubmit ()». потому что теперь форма входа не имеет тега формы, поэтому введите событие не работает здесь.
HTML
Javascript
Удачи!!!
источник
Не совсем - единственное, что вы можете реально сделать, это дать совет на сайте; возможно, перед их первым входом в систему вы могли бы показать им форму с информацией, указывающей, что не рекомендуется, чтобы они позволяли браузеру хранить пароль.
Затем пользователь немедленно последует совету, запишет пароль на заметке и прикрепит ее к своему монитору.
источник
То, что я делал, - это сочетание autocomplete = "off" и очистки полей пароля с помощью javascript / jQuery.
Пример jQuery:
Используя его,
setTimeout()
вы можете подождать, пока браузер заполнит поле, прежде чем очистить его, иначе браузер всегда будет автоматически заполняться после того, как вы очистите поле.источник
если autocomplete = "off" не работает ... удалите тег формы и используйте вместо него тег div, а затем передайте значения формы с помощью jquery на сервер. Это сработало для меня.
источник
Поскольку autocomplete = "off" не работает для полей пароля, нужно полагаться на javascript. Вот простое решение, основанное на ответах, найденных здесь.
Добавьте атрибут data-password-autocomplete = "off" в поле вашего пароля:
Включить следующие JS:
Это решение работает как для Chrome, так и для FF.
источник
Люди понимают, что атрибут «автозаполнение» работает большую часть времени, но опытные пользователи могут обойти его, используя букмарклет.
Сохранение паролей в браузере на самом деле повышает защиту от кейлогинга, поэтому, возможно, самый безопасный вариант - сохранять пароли в браузере, но защищать их мастер-паролем (по крайней мере, в Firefox).
источник
У меня есть работа вокруг, которая может помочь.
Вы можете сделать собственный хак шрифта. Поэтому создайте собственный шрифт, например, со всеми символами в виде точки / круга / звезды. Используйте это как собственный шрифт для вашего сайта. Проверьте, как это сделать в Inkscape: как сделать свой собственный шрифт
Тогда в вашем логине используйте:
Затем добавьте свой CSS:
Довольно кросс-браузер совместим. Я пробовал IE6 +, FF, Safari и Chrome. Просто убедитесь, что конвертируемый шрифт oet не поврежден. Надеюсь, поможет?
источник
Самый простой способ решить эту проблему - поместить поля INPUT вне тега FORM и добавить два скрытых поля внутри тега FORM. Затем в прослушивателе события submit перед отправкой данных формы на сервер скопируйте значения из видимого ввода в невидимые.
Вот пример (вы не можете запустить его здесь, поскольку действие формы не настроено на сценарий реального входа):
источник
Мой обходной путь js (jquery) - изменить тип ввода пароля на текст в форме отправки . Пароль может стать видимым на секунду, поэтому я также скрываю ввод непосредственно перед этим. Я бы предпочел не использовать это для форм входа в систему , но это полезно (вместе с autocomplete = "off"), например, внутри административной части сайта.
Попробуйте поместить это в консоль (с помощью jquery), прежде чем отправлять форму.
Протестировано на Chrome 44.0.2403.157 (64-разрядная версия).
источник
Я проверил много решений. Динамическое имя поля пароля, несколько полей пароля (невидимых для поддельных), изменение типа ввода с «текст» на «пароль», autocomplete = «off», autocomplete = «new-password», ... но ничего не решило с недавними браузер.
Чтобы избавиться от пароля, запомните, я наконец обработал пароль как поле ввода и «размыл» набранный текст.
Это менее «безопасно», чем поле родного пароля, так как выделение напечатанного текста показало бы его как открытый текст, но пароль не запоминается. Это также зависит от того, активирован ли Javascript.
Вам нужно будет оценить риск использования предложенного ниже предложения и опции запоминания пароля из навигатора.
Хотя запоминание пароля может управляться пользователем (отключено для каждого сайта), это подходит для персонального компьютера, а не для «общего» или общего компьютера.
В моем случае это ERP, работающий на общих компьютерах, поэтому я попытаюсь найти решение ниже.
источник
Маркус поднял замечательную мысль. Я решил посмотреть
autocomplete
атрибут и получил следующее:Поэтому я должен сказать, что хотя он не работает на 100% по всем направлениям, он обрабатывается в основных браузерах, поэтому это отличное решение.
источник
Я пробовал выше,
autocomplete="off"
и все же ничего удачного. Если вы используете Angle JS, я рекомендую нажать кнопку и нажать нг.У этого уже есть принятый ответ, я добавляю это, если кто-то не может решить проблему с принятым ответом, он может пойти с моим механизмом.
Спасибо за вопрос и ответы.
источник
enter
илиreturn
для отправки формы.Один из известных мне способов - использовать (например) JavaScript для копирования значения из поля пароля перед отправкой формы.
Основная проблема заключается в том, что решение связано с JavaScript.
Опять же, если он может быть связан с JavaScript, вы можете также хэшировать пароль на стороне клиента перед отправкой запроса на сервер.
источник
Реальная проблема гораздо глубже, чем просто добавление атрибутов в ваш HTML - это общая проблема безопасности, поэтому люди изобрели аппаратные ключи и другие сумасшедшие вещи для безопасности.
Представьте, что у вас есть autocomplete = "off", отлично работающий во всех браузерах. Это поможет с безопасностью? Конечно нет. Пользователи будут записывать свои пароли в учебниках, на наклейках, прикрепленных к монитору, где их может увидеть каждый посетитель офиса, сохранять их в текстовые файлы на рабочем столе и так далее.
Как правило, веб-приложение и веб-разработчик не несут никакой ответственности за безопасность конечного пользователя. Конечные пользователи могут защитить только себя. В идеале они ДОЛЖНЫ хранить все пароли в своей голове и использовать функцию сброса пароля (или связаться с администратором) на случай, если они забудут об этом. В противном случае всегда будет риск, что пароль может быть как-то виден и украден.
Так что либо у вас есть какая-то сумасшедшая политика безопасности с аппаратными ключами (например, некоторые банки предлагают интернет-банкинг, который в основном использует двухфакторную аутентификацию), либо БЕЗ БЕЗОПАСНОСТИ в принципе. Ну, это, конечно, немного преувеличено. Важно понять, от чего вы пытаетесь защитить:
В этом конкретном посте я вижу неадекватные требования к разработчику, которые он никогда не сможет решить из-за характера проблемы - безопасности конечного пользователя. Моя субъективная точка зрения заключается в том, что разработчик должен сказать «НЕТ» и указать на проблему требований, а не тратить время на такие задачи, если честно. Это не обязательно делает вашу систему более безопасной, скорее это приведет к случаям с наклейками на мониторах. К сожалению, некоторые боссы слышат только то, что хотят услышать. Однако, если бы я был вами, я бы попытался объяснить, откуда возникла настоящая проблема, и что autocomplete = "off" не решит ее, если только это не заставит пользователей хранить все свои пароли исключительно в своей голове! Разработчик со своей стороны не может полностью защитить пользователей,
источник
Столкнувшись с той же проблемой HIPAA и нашел относительно простое решение,
Создайте скрытое поле пароля с именем поля в виде массива.
Используйте тот же массив для поля фактического пароля.
Браузер (Chrome) может предложить вам «Сохранить пароль», но независимо от того, выберет ли пользователь сохранение, при следующем входе в систему пароль автоматически заполнит поле скрытого пароля, нулевой слот в массиве, оставив 1-й слот пустым.
Я попытался определить массив, такой как «пароль [part2]», но он все еще помнил. Я думаю, что он отбрасывает его, если это неиндексированный массив, потому что у него нет выбора, кроме как отбросить его в первую очередь.
Затем вы используете ваш язык программирования для доступа к массиву, например, PHP,
источник
Так как большинство из
autocomplete
предложений, в том числе общепринятом ответ, не работают в современных веб - браузеров (например , веб - браузер менеджеры паролей игнорируютautocomplete
), более новым решением является своп междуpassword
иtext
типами и сделать цвет фона под цвет текста , когда поле является текстовым полем, которое продолжает скрывать пароль, будучи реальным паролем, когда пользователь (или программа, подобная KeePass) вводит пароль. Браузеры не просят сохранять пароли, которые хранятся в текстовых полях.Преимущество этого подхода заключается в том, что он допускает постепенное улучшение и, следовательно, не требует Javascript для поля, функционирующего как поле обычного пароля (вместо этого можно также начать с простого текстового поля и применить тот же подход, но это не совсем HIPAA). PHI / PII-совместимый). Кроме того, этот подход не зависит от скрытых форм / полей, которые необязательно могут быть отправлены на сервер (потому что они скрыты), и некоторые из этих приемов также не работают в некоторых современных браузерах.
Плагин jQuery:
https://github.com/cubiclesoft/php-flexforms-modules/blob/master/password-manager/jquery.stoppasswordmanager.js
Соответствующий исходный код по ссылке выше:
Демо-версия:
https://barebonescms.com/demos/admin_pack/admin.php
Нажмите «Добавить запись» в меню, а затем прокрутите вниз страницы до «Модуль: Остановить менеджер паролей».
Отказ от ответственности: хотя этот подход работает для зрячих людей, могут возникнуть проблемы с программным обеспечением для чтения с экрана. Например, программа чтения с экрана может прочитать пароль пользователя вслух, потому что видит текстовое поле. Также могут быть другие непредвиденные последствия использования вышеуказанного плагина. Изменение функциональности встроенного веб-браузера должно быть сделано с осторожностью при тестировании широкого спектра условий и крайних случаев.
источник
Сайт сообщает браузеру, что это пароль с помощью
<input type="password">
. Поэтому, если вы должны сделать это с точки зрения веб-сайта, вам придется это изменить. (Очевидно, я не рекомендую это).Лучшее решение - настроить браузер так, чтобы он не запоминал пароли.
источник
Если вы не хотите доверять флагу автозаполнения, вы можете убедиться, что пользователь вводит текст в поле, используя событие onchange. Код ниже представляет собой простую форму HTML. Скрытый элемент формы password_edited начинается с 0. Когда значение пароля изменяется, JavaScript в верхней части (функция pw_edited) меняет значение на 1. Когда кнопка нажата, она проверяет код valueenter здесь перед отправкой формы , Таким образом, даже если браузер игнорирует вас и автоматически заполняет поле, пользователь не может пройти страницу входа в систему, не введя в поле пароля. Кроме того, не забудьте очистить поле пароля, когда фокус установлен. В противном случае, вы можете добавить символ в конце, затем вернуться и удалить его, чтобы обмануть систему. Я рекомендую дополнительно добавить autocomplete = "off" к паролю, но этот пример показывает, как работает код резервной копии.
источник
autocomplete = "off" не работает для отключения менеджера паролей в Firefox 31 и, скорее всего, не в некоторых более ранних версиях.
Ознакомьтесь с обсуждением этой проблемы в Mozilla: https://bugzilla.mozilla.org/show_bug.cgi?id=956906.
Мы хотели использовать второе поле пароля для ввода одноразового пароля, сгенерированного токеном. Теперь мы используем ввод текста вместо ввода пароля. :-(
источник
Мне было поручено аналогичное задание отключить автоматическое заполнение логина и пароля в браузере, после многих проб и ошибок я обнаружил, что приведенное ниже решение является оптимальным. Просто добавьте приведенные ниже элементы управления, прежде чем ваши оригинальные элементы управления.
Это работает нормально для IE11 и Chrome 44.0.2403.107
источник
autocomplete = "off" работает для большинства современных браузеров, но другой метод, который я успешно использовал в Epiphany (браузер на основе WebKit для GNOME), заключается в сохранении случайно сгенерированного префикса в состоянии сеанса (или в скрытом поле, которое у меня, как оказалось, было подходящая переменная уже в состоянии сеанса), и используйте ее для изменения названия полей. Крещение все еще хочет сохранить пароль, но при возврате к форме он не будет заполнять поля.
источник
У меня не было проблем с использованием этого метода:
Используйте autocomplete = "off", добавьте скрытое поле пароля, а затем еще одно скрытое поле. Браузер пытается автоматически завершить скрытый, если он не учитывает autocomplete = "off"
источник
Другое решение состоит в том, чтобы сделать POST, используя скрытую форму, где все входные данные имеют скрытый тип. Видимая форма будет использовать ввод типа «пароль». Последняя форма никогда не будет отправлена, поэтому браузер вообще не может перехватить операцию входа в систему.
источник