Uniemożliwia wklejanie w polach do wprowadzania danych

Niektóre witryny twierdzą, że zezwalanie użytkownikom na wklejanie haseł zmniejsza bezpieczeństwo. Wklejanie haseł zwiększa bezpieczeństwo, ponieważ umożliwia korzystanie z menedżera haseł.

Menedżerowie haseł zwykle generują silne hasła dla użytkowników, bezpiecznie je przechowują, a potem automatycznie wklejają je w pola haseł, gdy użytkownicy logują się na swoje konta. Takie podejście jest zazwyczaj bezpieczniejsze niż wymuszanie na użytkownikach wpisywania haseł, które są wystarczająco krótkie, aby je zapamiętać.

Zazwyczaj użytkownicy nie powinni mieć uniemożliwionego wklejania w elementy <input>.

Dlaczego ten audyt Lighthouse zakończył się niepowodzeniem

Lighthouse oznacza kod, który uniemożliwia użytkownikom wklejanie w polach wprowadzania danych, które nie są tylko do odczytu:

Audyt Lighthouse pokazuje, że strona uniemożliwia użytkownikom wklejanie w polu hasła

Lighthouse zbiera wszystkie elementy <input>, które nie są tylko do odczytu, wkleja w każdy z nich pewien tekst, a potem sprawdza, czy zdarzenie paste nie zostało zablokowane przez niestandardowy moduł obsługi zdarzeń.

Możesz też uniemożliwić wklejanie poza detektorem zdarzenia paste. Lighthouse nie wykrywa tego scenariusza.

Jak włączyć wklejanie w polach haseł

Znajdź kod, który uniemożliwia wklejanie

Aby szybko znaleźć i sprawdzić kod, który uniemożliwia wklejanie:

  1. Rozwiń panel Punkty przerwania detektora zdarzeń.
  2. Rozwiń listę Schowek.
  3. Zaznacz pole wyboru paste.
  4. Wklej tekst w polu hasła na stronie.
  5. Narzędzie DevTools powinno się zatrzymać na pierwszym wierszu kodu w odpowiednim detektorze zdarzeń paste.

Usuń kod, który uniemożliwia wklejanie

Źródłem problemu jest często wywołanie funkcji preventDefault() w detektorze zdarzeń paste, który jest powiązany z elementem wprowadzania hasła:

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

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

Jeśli nasłuchujesz tylko zdarzeń wklejania, aby je blokować, usuń cały detektor zdarzeń.

Zasoby

Kod źródłowy funkcji Uniemożliwia użytkownikom wklejanie w polach do wprowadzania danych