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:
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:
- Rozwiń panel Punkty przerwania detektora zdarzeń.
- Rozwiń listę Schowek.
- Zaznacz pole wyboru
paste
. - Wklej tekst w polu hasła na stronie.
- 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