Сохранение и автоматическая подача имени пользователя / пароля - это функция большинства современных браузеров. И пользователь обычно может отключить эту функцию для каждого домена. Но есть ли у самого сайта стандартный способ предотвратить кеширование паролей?
Акцент здесь делается на кроссбраузерности, поэтому при необходимости я бы использовал несколько параллельных механизмов.
(Я видел, как кеширование эффективно отключалось при наличии нестандартных полей входа, например, дополнительного скрытого поля пароля. Но я бы предпочел не зависеть от побочные эффекты, поведение которого может неожиданно измениться в будущем.)
И наоборот, существуют ли браузеры / версии, которые реализуют кеширование паролей без какой-либо функции отключения?
Моя - не объяснять почему, моя - просто реализовать и развернуть. (Но, вероятно, позже.) Заказчик: disa.mil
Вы должны использовать только CAC;)

Дайте вводимому паролю случайно сгенерированное имя, которое можете узнать только вы. Сохраните это имя, например, в скрытом поле, а затем используйте его для получения вставленного пароля. Таким образом, даже если браузер кэширует пароль, он не сможет восстановить его при следующем посещении пользователем.
Ваши пользователи, скорее всего, на этом этапе продолжат кэшировать пароли в посте на боковой стороне монитора, но на самом деле это совсем другая битва.
Тот же метод хорошо работает против спама, поскольку большинство ботов полагаются на поиск общих имен полей.
Интригующе. Но браузер по-прежнему будет хранить пароли на диске пользователя, что для нас является нарушением безопасности. (И, о, я согласен с вами в теории постита.)
Добавьте autocomplete = "off" к вашим элементам <input>. Работает во всех современных браузерах, IIRC.
А, теперь видите, я ожидал чего-то вроде cache = off. Мне нужно будет протестировать, чтобы убедиться, что пароли не попадают на диск, а не просто исключаются из автозаполнения ...
К вашему сведению, Microsoft решила, что Internet Explorer 11 больше не поддерживает autocomplete = "off" для полей input type = "password". msdn.microsoft.com/en-us/library/ie/ms533486%28v=vs.85%29.as px
Я бы предположил, что браузеры сохраняют поля формы при ее отправке. Что, если бы вы использовали AJAX для получения значения поля пароля, отправили его, а затем очистили поле? На самом деле форма никогда не будет отправлена, поэтому у браузера, теоретически, никогда не будет возможности сохранить значения.
Кто-нибудь тестировал этот ответ? Мне нравится теория, я просто хочу знать, правда ли она.
AFAIK, замаскированные поля (те, которые показывают '*' вместо символа, который вы вводите), никогда не сохраняются для автозаполнения. Вы хотите запретить пользователю запоминать пароль к вашему сайту в средствах сохранения пароля браузера?
Исправьте, не допускайте сохранения в средстве сохранения паролей.
Просто добавьте еще одно поле пароля между именем пользователя и паролем и установите стиль, чтобы не отображать ничего.
<!-- Username label and text here> ... <--!>
<input type = "password" id='txtPasswordDud' style='display: none;' />
<!-- Actual Password label and text here> ... <--!>
Чего именно вы хотите достичь? Принуждение пользователя к запоминанию пароля или предотвращение сбора злоумышленниками сохраненных паролей на стороне пользователя?