Impedisce agli utenti di incollare dati nei campi di immissione

Alcuni siti web affermano che consentire agli utenti di incollare le password riduce la sicurezza. Tuttavia, incollare le password in realtà migliora la sicurezza perché consente l'utilizzo di gestori delle password.

I gestori delle password in genere generano password efficaci per gli utenti, le memorizzano in modo sicuro e poi le incollano automaticamente nei campi delle password ogni volta che gli utenti devono eseguire l'accesso. Questo approccio è in genere più sicuro rispetto all'obbligo di digitare password sufficientemente brevi da ricordare per gli utenti.

In genere, agli utenti non deve essere impedito di incollare elementi negli elementi <input>.

Errori di controllo di Lighthouse

Lighthouse segnala il codice che impedisce agli utenti di incollare in campi di immissione non di sola lettura:

Il controllo Lighthouse mostra che la pagina impedisce agli utenti di incollare dati in un campo della password

Lighthouse raccoglie tutti gli elementi <input> non di sola lettura, incolla del testo in ogni elemento e verifica che l'evento paste non sia stato impedito da un gestore di eventi personalizzato.

È anche possibile impedire di incollare contenuti al di fuori di un listener di eventi paste. Lighthouse non rileva questo scenario.

Come attivare Incolla nei campi delle password

Trova il codice che impedisce di incollare

Per trovare e controllare rapidamente il codice che impedisce di incollare:

  1. Espandi il riquadro Punti di interruzione listener di eventi.
  2. Espandi l'elenco Appunti.
  3. Seleziona la casella di controllo paste.
  4. Incolla del testo in un campo della password nella pagina.
  5. DevTools deve mettersi in pausa sulla prima riga di codice nel listener di eventi paste pertinente.

Rimuovi il codice che impedisce di incollare

L'origine del problema è spesso una chiamata a preventDefault() all'interno del listener di eventi paste associato all'elemento di input della password:

let input = document.querySelector('input');

input.addEventListener('paste', (e) => {
  e.preventDefault(); // This is what prevents pasting.
});

Se stai ascoltando solo incollare gli eventi per prerilasciarli, rimuovi l'intero listener di eventi.

Risorse

Codice sorgente per il controllo Impedisci agli utenti di incollare contenuti nei campi di immissione