Jak zepsuć walidację
Krótki przykład jak NIE należy implementować walidacji danych wejściowych...
Przykładowa aplikacja (niestety, istniejąca w naturze) robi to w sposób następujący:
- użytkownik wypełnia formularz,
- użytkownik wysyła formularz,
- aplikacja (po stronie klienta) generuje pierwszy request do serwera, w trakcie którego walidowane są wprowadzone dane wejściowe,
- jeśli dane są niepoprawne, użytkownik otrzymuje informację o błędnych danych,
- jeśli dane są poprawne, aplikacja (po stronie klienta) generuje drugi request do serwera, w trakcie którego dane już NIE są walidowane,
Ciekawe jak długo ktoś myślał nad tym zmyślnym sposobem walidacji. Bo mnie zajęło jakieś 3 sekundy zorientowanie się jak go obejść...
Ja wiem, że AJAX (i podobne) jest trendy, fajny i laski na to lecą, ale czasem trzeba pomyśleć, czy jego wykorzystanie ma sens. Nie dość, że walidacja taka nie spełnia swojego zadania jeśli chodzi o bezpieczeństwo, to jeszcze zmniejsza wydajność aplikacji, zwiększa obciążenie serwerów i łącza. Jak? A na przykład tak, że potrzebuje dwóch requestów do tego, co można załatwić jednym.
Autor tego potworka powinien zaznajomić się na przykład z tym: ASP.NET Validation in Depth, bo o ASP.NET tu chodzi.
Oryginał tego wpisu dostępny jest pod adresem Jak zepsuć walidację
Autor: Paweł Goleń