Domanda Come si disabilita il completamento automatico del browser sul campo modulo Web / tag di input?


Come disabiliti autocomplete nei principali browser per uno specifico input (o form field)?


2253
2017-08-05 16:22


origine


risposte:


Firefox 30 ignora autocomplete="off" per le password, scegliendo di chiedere all'utente se la password deve essere memorizzata sul client. Si noti quanto segue commento dal 5 maggio 2014:

  • Il gestore della password sempre chiede se vuole salvare una password. Le password non vengono salvate senza l'autorizzazione dell'utente.
  • Siamo il terzo browser a implementare questa modifica, dopo IE e Chrome.

Secondo Documentazione per sviluppatori Mozilla l'attributo dell'elemento del modulo autocomplete impedisce che i dati del modulo vengano memorizzati nella cache nei browser più vecchi.

<input type="text" name="foo" autocomplete="off" />

2212
2017-08-05 16:24



Inoltre autocomplete=off, potresti anche far sì che i nomi dei campi modulo siano randomizzati dal codice che genera la pagina, magari aggiungendo una stringa specifica della sessione alla fine dei nomi.

Quando il modulo viene inviato, è possibile rimuovere quella parte prima di elaborarla sul lato server. Ciò impedirebbe al browser Web di trovare il contesto per il proprio campo e potrebbe anche aiutare a prevenire gli attacchi XSRF perché un utente malintenzionato non sarebbe in grado di indovinare i nomi dei campi per l'invio di un modulo.


248
2017-10-20 13:36



La maggior parte dei principali browser e gestori di password (correttamente, IMHO) ora ignorano autocomplete=off.

Perché? Molte banche e altri siti Web di "sicurezza elevata" hanno aggiunto autocomplete=off alle loro pagine di accesso "per motivi di sicurezza" ma questo in realtà diminuisce la sicurezza poiché fa sì che le persone cambino le password su questi siti ad alta sicurezza per essere facili da ricordare (e quindi incrinarli) da quando è stata interrotta l'autocomplete.

Molto tempo fa la maggior parte dei gestori di password ha iniziato a ignorare autocomplete=offe ora i browser stanno iniziando a fare lo stesso solo per gli input username / password.

Sfortunatamente, i bug nelle implementazioni di completamento automatico inseriscono il nome utente e / o le informazioni sulla password in campi di modulo inappropriati, causando errori di convalida del modulo o, peggio ancora, inserendo accidentalmente nomi utente in campi che sono stati intenzionalmente lasciati in bianco all'utente.

Cosa deve fare uno sviluppatore web?

  • Se è possibile mantenere tutti i campi della password su una pagina da soli, è un ottimo inizio poiché sembra che la presenza di un campo password sia il trigger principale per il completamento automatico degli utenti / passaggi. In caso contrario, leggi i suggerimenti di seguito.
  • Safari nota che ci sono 2 campi password e disabilita il completamento automatico in questo caso, supponendo che debba essere un modulo di cambio password, non un modulo di accesso. Quindi assicurati di utilizzare 2 campi password (nuovi e conferma nuovi) per tutti i moduli in cui permetti
  • Cromo 34, sfortunatamente, proverà a compilare automaticamente i campi con user / pass ogni volta che vedrà un campo password. Questo è un bug piuttosto brutto che, si spera, cambieranno il comportamento di Safari. Tuttavia, l'aggiunta di questo nella parte superiore del modulo sembra disabilitare la compilazione automatica della password:

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

Non ho ancora studiato a fondo IE o Firefox, ma saremo lieti di aggiornare la risposta se altri hanno informazioni nei commenti.


184
2018-04-23 04:00



A volte anche autocomplete = off voluto non impedire di riempire nelle credenziali nei campi sbagliati, ma non nel campo utente o nickname.

Questa soluzione alternativa si aggiunge al post di apinstein sul comportamento del browser.

correzione automatica del browser in sola lettura e impostazione scrivibile su focus (clic e scheda)

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

Aggiornare: Mobile Safari imposta il cursore nel campo, ma non mostra la tastiera virtuale. La nuova correzione funziona come prima, ma gestisce la tastiera virtuale:

<input id="email" readonly type="email" onfocus="if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    // fix for mobile safari to show virtual keyboard
    this.blur();    this.focus();  }" />

Dimostrazione dal vivo https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

Perché il browser auto riempie le credenziali in un campo di testo errato !?

Ho notato questo strano comportamento su Chrome e Safari, quando ci sono campi password la stessa forma. Immagino, il browser cerca un campo password per inserire le credenziali salvate. Quindi riempie automaticamente (solo a indovinare a causa dell'osservazione) il campo di input simile al testo, che appare prima del campo della password in DOM. Poiché il browser è l'ultima istanza e non puoi controllarlo,

Questa correzione di sola lettura sopra ha funzionato per me.


120
2018-06-16 16:04



<form name="form1" id="form1" method="post" 
      autocomplete="off" action="http://www.example.com/form.cgi">

Funzionerà in Internet Explorer e Mozilla FireFox, il lato negativo è che non è lo standard XHTML.


93
2017-08-05 16:27



La soluzione per Chrome è da aggiungere autocomplete="new-password" alla password del tipo di input.

Esempio:

<form name="myForm"" method="post">
<input name="user" type="text" />
<input name="pass" type="password" autocomplete="new-password" />
<input type="submit">
</form>

Chrome completa automaticamente i dati se trova una scatola di Inserisci password, quel tanto che basta per indicare per quella scatola autocomplete = "new-password".

Questo funziona bene per me.

Nota: assicurati con F12 che le tue modifiche abbiano effetto, molte volte i browser salvano la pagina nella cache, questo mi ha dato la cattiva impressione che non funzionasse, ma il browser non ha apportato effettivamente le modifiche.


57
2017-11-24 17:07



Come altri hanno già detto, la risposta è autocomplete="off"

Tuttavia, penso che valga la pena di affermarlo perché è una buona idea usare questo in alcuni casi come alcune risposte a questo e duplicare le domande hanno suggerito che è meglio non spegnerlo.

L'interruzione dei browser che memorizzano i numeri delle carte di credito non dovrebbe essere lasciata agli utenti. Troppi utenti non si rendono nemmeno conto che è un problema.

È particolarmente importante disattivarlo nei campi per i codici di sicurezza della carta di credito. Come questa pagina stati:

"Non memorizzare mai il codice di sicurezza ... il suo valore dipende dalla presunzione che l'unico modo per fornirlo è quello di leggerlo dalla carta di credito fisica, dimostrando che la persona che lo fornisce in realtà detiene la carta".

Il problema è che se si tratta di un computer pubblico (cyber cafe, libreria, ecc.) È facile per gli altri utenti rubare i dettagli della carta e persino sul proprio computer un sito Web dannoso potrebbe rubare dati di completamento automatico.


53
2018-01-23 21:21



Dovrei chiedere di dissentire da quelle risposte che dicono di evitare di disabilitare il completamento automatico.

La prima cosa da notare è che il completamento automatico non viene esplicitamente disabilitato nei campi del modulo di accesso è un errore PCI-DSS. Inoltre, se la macchina locale di un utente viene compromessa, qualsiasi dato di completamento automatico può essere ottenuto banalmente da un utente malintenzionato perché viene archiviato in chiaro.

C'è certamente un argomento per l'usabilità, tuttavia c'è un ottimo equilibrio quando si tratta di quali campi modulo dovrebbero avere il completamento automatico disabilitato e quali no.


29
2017-09-17 00:33



Tre opzioni: Primo:

<input type='text' autocomplete='off' />

Secondo:

<form action='' autocomplete='off'>

Terzo (codice javascript):

$('input').attr('autocomplete', 'off');

24
2018-03-19 10:05