Walidacja formularzy na stronach internetowych


Co to jest walidacja

Walidacja ma dwa podstawowe zadania. Po pierwsze ma zabezpieczać formularz przed nieautoryzowanym wykorzystaniem czyli przed włamaniem. Wszelkie formularze są kluczowym elementem systemów w kwestii bezpieczeństwa. Ponieważ dajemy użytkownikom dostęp do modyfikowania naszej bazy danych - nie możemy pozwolić na uzyskanie większych uprawnień niż im na to pozwalamy.

Na przykład: użytkownik wprowadza odpowiednio spreparowane dane dzięki którym rejestruje się jako administrator serwisu i ma dostęp do modyfikowania całości zawartości. W ten sposób przejmuje kontrolę i pozbawia nas ważnych danych.

Drugim ważnym aspektem jest pomoc użytkownikowi w prawidłowym wypełnieniu formularza. Na przykład użytkownik podaje e-mail w złym formacje, co sprawia że nie otrzyma on automatycznie wygenerowanej wiadomości. Dzięki walidacji, jesteśmy w stanie ustrzec się prostych błędów które są często popełniane przez ludzi.

W systemach online wyróżniamy dwa rodzaje walidacji:

  • Walidacja po stronie serwera
  • Walidacja po stronie klienta (przeglądarki internetowej)
Zadaniem serwera jest czuwanie nad bezpieczeństwem i integralnością danych. Powinien on również mieć wszelkie mechanizmy które są potrzebne do pomocy użytkownikowi w wypełnieniu danych na wypadek gdyby użytkownik nie posiadał włączonej obsługi skryptów JavaScript.

Walidacja po stronie przeglądarki


Walidacja po stronie klienta w zasadzie ma tylko jedną funkcję. Pomoc dla użytkownika. Ze względu na swoją specyfikację nie możemy jej ufać w 100%. Dlatego serwer zawsze powinien posiadać dodatkową walidację. Ze względu na to że serwer musi przesłać wszystkie dane a później zwrócić odpowiedni komunikat warto sprawdzać dane od razu na komputerze użytkownika. Walidacja po stronie przeglądarki sprawia że użytkownik nie musi czekać na odpowiedź serwera a my oszczędzamy na niepotrzebnym transferze danych. Ponadto przeglądarka potrafi wprowadzić mechanizmy które będą bardziej przyjazne dla wprowadzającego. Na przykład sprawdzać długość hasła od razu po jego wprowadzeniu a nie czekać na wciśniecie przycisku.

Podsumowując, oba rodzaje walidacji są niezbędne do bezpiecznego i przyjaznego funkcjonowania systemu. Zakładając jednak że chcemy zrezygnować z któregoś rodzaju, pozostawmy walidację po stronie serwerze. Nie ucierpi przy tym bezpieczeństwo. Minusem będzie jednak utrudnienie w korzystaniu z systemu.

Walidacja przez JavaScript vs Walidacja HTML5


Ostatnimi czasy coraz popularniejszy staje się HTML5. W jego specyfikacji można wyczytać między innymi że istnieją mechanizmy dotyczące walidacji danych. Pomysł rezygnacji z JavaScript na rzecz mechanizmów zaimplementowanych w przeglądarce wydaje się być bardzo dobry. Dzięki temu oszczędzamy na przesyłaniu dodatkowych plików z kodem JS. Ponadto rozwiązanie takie ułatwia pracę developerom którzy mogą skupić się na innych ważnych kwestiach.

Wszystko w założeniach wygląda bardzo dobrze i wydaje się oczywiste. Jestem pewny że przyszłość właśnie tak będzie wyglądała. Na dzień dzisiejszy jednak walidacja poprzez HTML5 nie została w pełni zaimplementowana i posiada istotne błędy. Np. walidując pola, przeglądarka sprawdza poprawność danych w momencie próby wysyłania formularza. Mało tego, każde pole jest sprawdzane osobno. Sprawia to że nie  użytkownik traci niepotrzebnie czas.

Z tego względu warto w dalszym ciągu korzystać z gotowych bibliotek JS. Przykładem skryptów są JQuery Validate lub jQuery.validVal 

Dzięki gotowym otwartym bibliotekom twórcy stron mogą skupić się na prawidłowym działaniu strony i nie przejmować tworzeniem kodu od podstaw.

Na co warto zwrócić uwagę przy walidacji po stronie klienta


  • Komunikaty powinny być wyraźne i zrozumiałe dla użytkownika. Niedozwolone jest wyświetlanie numerów błędu i kodu niezrozumiałego dla osoby korzystającej z formularza. Częstym błędem jest też brak komunikatu przez co użytkownik jest zdezorientowany i nie wie o co chodzi.
  • Walidacja każdego pola powinna następować zaraz po wprowadzeniu danych. Oszczędzamy dzięki temu czas oraz nerwy użytkowników.
  • Niedozwoloną sytuacją jest  wykasowanie danych z formularza w przypadku wystąpienia błędów. User który wypełni raz formularz i zostanie poproszony o ponowne wypełnienie ponieważ wystąpiły błędy prawdopodobnie opuści naszą stronę.



Komentarze

Popularne posty z tego bloga

Na czym skupić powinien się freelancer?

Wyrażenia regularne