Тип ввода = пароль, не позволяйте браузеру помнить пароль

Я помню, как я видел способ <input type="password" />, чтобы браузер не предлагал пользователю сохранить пароль. Но я рисую пустоту. Есть ли атрибут HTML или какой-либо трюк JavaScript, который будет делать это?

Ответ 1

Попробуйте использовать autocomplete="off". Не уверен, что каждый браузер поддерживает его. MSDN docs здесь.

EDIT: Примечание. Большинство браузеров отказались от поддержки этого атрибута. См. Автозаполнение = "off" совместим со всеми современными браузерами?

Это, возможно, что-то, что нужно оставить пользователю, а не дизайнеру веб-сайта.

Ответ 2

<input type="password" autocomplete="off" />

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

Пароли уже не хранятся в MRU, и правильно настроенные общедоступные машины даже не будут сохранять имя пользователя.

Ответ 3

Я решил по-другому. Вы можете попробовать это.

<input id="passfld" type="text" autocomplete="off" />
<script type="text/javascript">
// Using jQuery
$(function(){                                               
    setTimeout(function(){
        $("input#passfld").attr("type","password");
    },10);
});


// or in pure javascript
 window.onload=function(){                                              
    setTimeout(function(){  
        document.getElementById('passfld').type = 'password';
    },10);
  }   
</script>

#another way

 <script type="text/javascript">    
 function setAutoCompleteOFF(tm){
    if(typeof tm =="undefined"){tm=10;}
    try{
    var inputs=$(".auto-complete-off,input[autocomplete=off]"); 
    setTimeout(function(){
        inputs.each(function(){     
            var old_value=$(this).attr("value");            
            var thisobj=$(this);            
            setTimeout(function(){  
                thisobj.removeClass("auto-complete-off").addClass("auto-complete-off-processed");
                thisobj.val(old_value);
            },tm);
         });
     },tm); 
    }catch(e){}
  }
 $(function(){                                              
        setAutoCompleteOFF();
    });
</script>

//вам нужно добавить атрибут autocomplete = "off", или вы можете добавить класс .auto-complete-off в поле ввода и наслаждаться

Пример:

  <input id="passfld" type="password" autocomplete="off" />
    OR
  <input id="passfld" class="auto-complete-off" type="password"  />

Ответ 4

Я попробовал следующее и, похоже, работает в любом браузере:

<input id="passfld" type="text" autocomplete="off" />

<script type="text/javascript">
    $(function(){  
        var passElem = $("input#passfld");
        passElem.focus(function() { 
            passElem.prop("type", "password");                                             
        });
    });
</script>

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

Ответ 5

Что касается проблем безопасности, вот что консультант по безопасности скажет вам обо всём полевом выпуске (это из фактического независимого аудита безопасности):

HTML Autocomplete Enabled - поля пароля в HTML-формах имеют автозаполнение. Большинство браузеров имеют возможность запоминать учетные данные пользователя, введенные в формы HTML.

Относительный риск: низкий

Затронутые системы/устройства:    o https:// *******/

Я также согласен, что это должно охватывать любое поле, содержащее действительно личные данные. Я чувствую, что все в порядке заставить человека всегда вводить информацию о своей кредитной карте, код CVC, пароли, имена пользователей и т.д., Когда этот сайт собирается получить доступ к чему-либо, что должно быть защищено [универсально или с соблюдением требований законодательства]. Например: формы покупки, банковские/кредитные сайты, налоговые сайты, медицинские данные, федеральные, ядерные и т.д. - не такие сайты, как переполнение стека или Facebook.

Другие типы сайтов - например, TimeStar Online для синхронизации и выхода из работы - это глупо, так как я всегда использую тот же компьютер/учетную запись на работе, что я не могу сохранить учетные данные на этом сайте - как ни странно, я могу на своем Android, но не на iPad. Даже общие ПК это было бы не так уж плохо, так как входы/выходы для кого-то еще действительно не делают ничего, кроме раздражения вашего супервизора. (Они должны войти и удалить ошибочные удары - просто выберите, чтобы не сохранять на публичных ПК).

Ответ 6

Вот лучший ответ, и самый легкий! Поместите дополнительное поле пароля перед полем input и установите display:none, чтобы при заполнении браузером он сделал это в input, который вам неинтересен.

Измените это:

<input type="password" name="password" size="25" class="input" id="password" value="">

:

<input type="password" style="display:none;">
<input type="password" name="password" size="25" class="input" id="password" value="">

Ответ 7

Вы можете использовать JQuery, выбрать элемент по id:

$("input#Password").attr("autocomplete","off");

Или выберите элемент по типу:

$("input[type='password']").attr("autocomplete","off");

Или также:

Вы можете использовать чистый Javascript:

document.getElementById('Password').autocomplete = 'off';

Ответ 8

вы также можете использовать его, как показано ниже.

$('#Password').attr("autocomplete", "off");
setTimeout('$("#Password").val("");', 2000);

Ответ 9

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

До:

<form action="..."><input type="password"/></form>

После:

<input type="password"/>

Ответ 10

Я нашел следующие работы в Firefox и Chrome.

<form ... > <!-- more stuff -->
<input name="person" type="text" size=30 value="">
<input name="mypswd" type="password" size=6 value="" autocomplete="off">
<input name="userid" type="text" value="security" style="display:none">
<input name="passwd" type="password" value="faker" style="display:none">
<!-- more stuff --> </form>

Все они находятся в разделе форм. "человек" и "mypswd" - это то, что вы хотите, но браузер будет сохранять "userid" и "passwd" один раз, и никогда больше, так как они не меняются. Вы можете удалить поле "person", если вам это действительно не нужно. В этом случае все, что вам нужно, это поле "mypswd", которое может быть изменено каким-то образом известным пользователю вашей веб-страницы.

Ответ 11

Единственный способ, с помощью которого я могу запустить firefox, edge и Internet explorer, отключить автозаполнение, - добавить autocomplete = "false" в мой оператор формы, например:

  <form action="postingpage.php" autocomplete="false" method="post">

и я должен добавить autocomplete = "off" к моему вводу формы и изменить тип на текст Like:

     <input type="text" autocomplete="off">

Кажется, что этот HTML-код необходимо стандартизировать с помощью браузеров. тип формы = пароль следует пересмотреть, чтобы он переопределял настройки браузера.  Единственная проблема, с которой я сталкиваюсь, это то, что я потерял свою маскировку ввода. Но на яркой стороне раздражающий "этот сайт небезопасен" не появляется в firefox.

для меня, это не очень важно, так как пользователь уже прошел аутентификацию и его имя пользователя и пароль меняют его имя

Ответ 12

Читайте также этот ответ, где он использует это простое решение, которое работает повсюду (см. также исправление для Safari mobile):

<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>