2011-11-25 8 views
18

Jakie są moje opcje używania tego samego kodu JavaScript do sprawdzania po stronie klienta i po stronie serwera (Node.js)?Walidacja JavaScript działa zarówno na kliencie, jak i na serwerze Node.js?

+1

Skończyło się na pisaniu mojej własnej weryfikacji. Zasadniczo mam model, np. Osoba, która ma na to walidację. Ten model Person istnieje zarówno na kliencie, jak i na serwerze. Gdy użytkownik wprowadza szczegóły dotyczące mojego FORMULARZA, wypełniam obiekt Person i sprawdzam go, przekazując informację zwrotną do nieprawidłowych pól. Po przesłaniu formularza do serwera, ponownie wypełniam obiekt Person i ponownie sprawdzę poprawność wartości otrzymanych od klienta. Jeśli wystąpi błąd, po prostu odeślę go do klienta. W ten sposób mogę ponownie użyć tego samego modelu zarówno na kliencie, jak i na serwerze, uruchomić testy jednostkowe i pokazać błędy za pomocą jquery. –

Odpowiedz

-14

Brak, walidujesz całkowicie różne kryteria po stronie serwera. Sprawdzanie poprawności po stronie klienta jest czysto kryterium akceptacji użytkownika i nie ma nic wspólnego z bezpieczeństwem. Walidacja po stronie serwera prawie wyłącznie dotyczy bezpieczeństwa.

+10

Nie zgadzam się. Ignorując XSS i inne wtryski, wciąż chcę sprawdzić, czy pole formularza ma długość X znaków i jest kodem pocztowym. W przeciwnym razie nic nie powstrzymałoby mnie przed wejściem do Firebug i zmianą wartości przesłanych na serwer. Korzystanie z JavaScript zarówno na kliencie, jak i na serwerze oznaczałoby ponowne użycie kodu. Byłoby głupio tego nie robić. –

+0

Nie można zignorować XSS i innych luk iniekcyjnych, więc nie ma to znaczenia. – austincheney

+0

Myślę, że jego punkt wydaje się prawidłowy. Chcę zweryfikować, czy wiadomość e-mail jest adresem e-mail zarówno klienta, jak i serwera, bez jednoczesnego wpisania dokładnie tego samego kodu w tym samym języku. Zobacz ten klejnot rails na przykład: https://github.com/bcardarella/client_side_validations – rgbrgb

Powiązane problemy