70-480 – Sprawdzanie poprawności danych wejściowych użytkownika przy użyciu języka JavaScript

70-480

Ocena wyrażenia regularnego w celu sprawdzenia poprawności formatu wejściowego; weryfikowanie poprawności typu uzyskiwanych danych poprzez stosowanie funkcji wbudowanych, zapobieganie iniekcji kodu.



W poprzednim wpisie pisałem o walidacji wprowadzanych danych za pomocą kontrolek HTML5. Dzisiaj pokażę w jaki sposób pomóc nam w tym może język JavaScript. Do dzieła więc!

Kontrolki formularzy HTML5 pozwalają w zasadzie na podstawową walidację wprowadzanych danych. Bardziej złożone przypadki powinny być rozpatrywane bezpośrednio w kodzie JavaScript. Pozwala nam to zablokować wysłanie danych formularza do serwera oraz wyświetlić stosowne komunikaty użytkownikowi.

Wyrażenia regularne

Do sprawdzenia poprawności wprowadzonych wartości w pola formularza posłużą nam wyrażenia regularne. Wyobraźmy sobie, że kontrolka o typie email nie istnieje i walidację poprawności wprowadzonego adresu email musimy przeprowadzić bezpośrednio w JavaScript:

W powyższym kodzie rejestrujemy obsługę kliknięcia w przycisk Wyślij i wykonujemy walidację wprowadzonej wartości. W przypadku poprawności adresu email zwracamy wartość true i formularz zostaje wysłany na serwer. W przeciwnym wypadku wykonujemy funkcję e.preventDefault(), która zatrzymuje wykonanie akcji wysłania formularza, dodajemy komunikat błędu do zdefiniowanego wcześniej kontenera, zaznaczamy pole, w którym nastąpił błąd walidacji oraz wracamy wartość false w funkcji obsługującej kliknięcie w przycisk typu submit.

Skomplikowanie wyrażenia regularnego jest w tym przypadku spore, a w zasadzie zależy to od konkretnej implementacji. W sieci można znaleźć ich wiele, ale co najważniejsze – w ten sposób formularz zostanie poprawnie zwalidowany i nie będzie wysłany w razie błędnych danych. Użytkownik otrzyma również stosowny komunikat odnośnie popełnionych błędów.

Świetny artykuł na temat wyrażeń regularnych przygotował zespół Mozilla na swojej stronie. Nie ma sensu bym tutaj powtarzał zawarte tam mądrości, bo na pewno nie zrobię tego lepiej. Zachęcam jednak do zapoznania się z tym materiałem. Jest on niewątpliwie obowiązkowy dla każdego programisty.

Zapobieganie wstrzykiwaniu kodu

Tutaj również posłużę się źródłem zewnętrznym, które świetnie opisuje tematykę oraz sposoby zapobiegania wstrzykiwaniu kodu oraz atakom ze strony użytkowników.

Chodzi tutaj przede wszystkim o to by starać się zapobiegać zabiegom pozwalającym uruchamiać kod na naszej stronie, a tym bardziej przesyłaniu takiego kodu do części serwerowej. Nie muszę chyba dodawać, że taki niechciany kod może wyrządzić sporo złego.