Uniemożliwia wklejanie w polach do wprowadzania danych

Niektóre strony twierdzą, że możliwość wklejania haseł przez użytkowników zmniejsza bezpieczeństwo. Jednak wklejanie haseł zwiększa bezpieczeństwo, ponieważ umożliwia korzystanie z menedżerów haseł.

Zwykle menedżery haseł generują silne hasła dla użytkowników, bezpiecznie je przechowują, a potem automatycznie wklejają je w polach haseł, gdy użytkownik chce się zalogować. To podejście jest zwykle bezpieczniejsze niż zmuszanie użytkownika do wpisywania haseł, które są wystarczająco krótkie, aby można było je zapamiętać.

Ogólnie rzecz biorąc, użytkownicy nie powinni mieć możliwości wklejania do elementów <input>.

Dlaczego kontrola Lighthouse kończy się niepowodzeniem

Lighthouse zgłasza kod, który uniemożliwia użytkownikom wklejanie w polach do wprowadzania danych innych niż do odczytu:

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

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

Możesz też zapobiec wklejaniu poza detektor zdarzeń paste. Lighthouse nie wykrywa tego scenariusza.

Jak włączyć wklejanie w polach hasła

Znajdź kod uniemożliwiający 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ędzia deweloperskie powinny wstrzymać się 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 powiązanym z elementem wprowadzania hasła:

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

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

Jeśli słuchasz tylko wklejania zdarzeń, by je wywłaszczać, usuń cały detektor zdarzeń.

Zasoby

Kod źródłowy kontroli Uniemożliwia użytkownikom wklejanie do pól do wprowadzania danych