Czy korzystasz zarówno z technik sprawdzania poprawności po stronie klienta, jak i po stronie serwera?

10

Czy używasz technik walidacji zarówno po stronie klienta, jak i po stronie serwera, podczas sprawdzania poprawności danych wejściowych od użytkownika, np. Za pomocą formularza kontaktowego?

Jeśli tak, czy to naprawdę konieczne? Czy jesteś ponad inżynierią?

TeaDrinkingGeek
źródło
To interesujące: smashingmagazine.com/2009/07/07/…
TeaDrinkingGeek

Odpowiedzi:

27

Tak i powinieneś.

Zapewnia to natychmiastową informację zwrotną od użytkownika bez marnowania informacji zwrotnych, a jednocześnie chroni przed użytkownikami wyłączającymi JavaScript.

Tak działają formanty sprawdzania poprawności ASP.NET .

Z pewnością nie jest to nadmierna inżynieria, ponieważ używanie jednego bez drugiego ma wady.

billy.bob
źródło
8
+1. Nie ma usprawiedliwienia dla braku imo walidacji po stronie serwera.
DBlackborough
11
Po stronie serwera jest konieczna, po stronie klienta wygoda. W aplikacjach internetowych nie można liczyć na weryfikację po stronie klienta.
BillThor
@BillThor - Tak, dokładnie tak
billy.bob
inteligentni użytkownicy mogą zdecydowanie nadużyć Twojej aplikacji, jeśli nie masz weryfikacji po stronie klienta
Umair
6

Jeśli tak, czy to naprawdę konieczne?

Tak.

Czy jesteś ponad inżynierią?

Nie.

Walidacja frontonu może dać natychmiastową informację zwrotną, jeśli jest to bogaty interfejs.

Back-end może być używany przez wiele front-endów. Jest to jedyna walidacja planu rezerwowego tylko w języku HTML (bez javascript).

S.Lott
źródło
6

Jednym z pierwszych fundamentów, których nauczyłem się o bezpieczeństwie, było to, że hakerzy nigdy nie użyją twojego interfejsu użytkownika.

Każdą walidację po stronie klienta można zwykle łatwo ominąć w aplikacjach internetowych, jeśli mają one własną lokalną wersję formularza, a następnie przesyłają ją z powrotem na serwer.

Sprawdzanie poprawności po stronie klienta jest świetne, ponieważ poprawia komfort użytkowania i ogranicza niepotrzebne podróże w obie strony na serwer w celu przeprowadzenia weryfikacji.

Bruce McLeod
źródło
+1, widziałem wiele przykładów, w których weryfikacja została wykonana całkowicie po stronie klienta
Karl
2

Walidacja po stronie serwera powinna być absolutnym minimum.

W przypadku danych wejściowych, które mogą być nieprawidłowe, należy również dodać kontrolę po stronie klienta.

Na przykład: sprawdź, czy wiadomość e-mail jest poprawnie sformatowana zarówno po stronie klienta, jak i serwera, ale sprawdzenie, czy jest unikalna, może być sprawdzeniem po stronie serwera.

Carra
źródło
1
„Sprawdzenie, czy jest to niesprzeczne”, NIE jest weryfikacją, więc nie dotyczy. Zrozum różnicę.
billy.bob
2
Czy czytałeś nawet to, co publikujesz? Sprawdzanie, czy adres e-mail jest unikalny, jest sprawdzaniem poprawności. Sprawdzanie, powiedzmy, że adres e-mail i hasło są ważnymi poświadczeniami, to weryfikacja. W każdym razie jest to tylko kwestia terminologii.
Andrea
1

Tak, korzystanie z obu nie jest złym pomysłem. Jeśli po stronie klienta można wykryć proste błędy wprowadzania danych przez użytkownika, warto poinformować użytkownika o tych błędach przed wysłaniem danych i uruchomieniem serwera. Na przykład, jeśli użytkownik wprowadził coś, co nie wygląda jak adres e-mail w polu „e-mail” lub wprowadził ciąg tylko 5 znaków w polu hasła i wiesz, że twoja witryna wymagała hasła o długości co najmniej 6 znaków, to powinieneś poinformować o tym użytkownika przed wysłaniem czegokolwiek na serwer.

Ważne jest również powielenie dokładnie tej samej weryfikacji na serwerze z 2 powodów: 1) co jeśli użytkownik ma wyłączoną obsługę Javascript?

2) Użytkownik złośliwie próbował ominąć weryfikację po stronie klienta, co jest naprawdę łatwe.

Dmitri
źródło