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:
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:
- Espandi il riquadro Punti di interruzione listener di eventi.
- Espandi l'elenco Appunti.
- Seleziona la casella di controllo
paste
. - Incolla del testo in un campo della password nella pagina.
- 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.