Verwenden Sie sowohl clientseitige als auch serverseitige Validierungstechniken?

10

Verwenden Sie sowohl clientseitige als auch serverseitige Validierungstechniken nebeneinander, wenn Sie Eingaben eines Benutzers validieren, z. B. über ein Kontaktformular?

Wenn ja, ist es wirklich notwendig? Bist du über Engineering?

TeaDrinkingGeek
quelle
Das ist interessant: smashingmagazine.com/2009/07/07/…
TeaDrinkingGeek

Antworten:

27

Ja, und du solltest.

Dies sorgt für sofortiges Benutzerfeedback ohne verschwendete Postbacks und schützt gleichzeitig vor Benutzern, die JavaScript deaktivieren.

So funktionieren die ASP.NET-Validierungssteuerelemente .

Es ist sicherlich keine Überentwicklung, da die Verwendung eines ohne das andere Nachteile hat.

Billy Bob
quelle
8
+1. Keine Entschuldigung dafür, keine serverseitige Validierung zu haben.
DBlackborough
11
Serverseite ist notwendig, Clientseite ist Bequemlichkeit. In Webanwendungen können Sie nicht auf die clientseitige Validierung zählen.
BillThor
@ BillThor - Ja, das ist genau richtig
billy.bob
Intelligente Benutzer können Ihre App definitiv missbrauchen, wenn Sie keine clientseitige Validierung haben
Umair
6

Wenn ja, ist es wirklich notwendig?

Ja.

Bist du über Engineering?

Nein.

Die Front-End-Validierung kann sofortiges Feedback geben, wenn es sich um eine umfangreiche Benutzeroberfläche handelt.

Das Backend kann von mehreren Frontends verwendet werden. Und es ist die einzige Validierung für den Nur-HTML-Fallback-Plan (kein Javascript).

S.Lott
quelle
6

Eine der ersten Grundlagen, die ich über Sicherheit gelernt habe, war, dass Hacker Ihre Benutzeroberfläche niemals verwenden werden.

Jede clientseitige Validierung kann normalerweise in Webanwendungen leicht umgangen werden, wenn sie über eine eigene lokale Version Ihres Formulars verfügen, und diese dann an Ihren Server zurücksenden.

Die clientseitige Validierung ist jedoch hervorragend geeignet, um die Benutzererfahrung zu verbessern und unnötige Roundtrips zum Server zur Durchführung der Validierung zu reduzieren.

Bruce McLeod
quelle
+1, ich habe viele Beispiele gesehen, bei denen die Validierung vollständig auf der Client-Seite durchgeführt wurde
Karl
2

Die serverseitige Validierung sollte das absolute Minimum sein.

Und für Eingaben, die wahrscheinlich falsch sind, sollten Sie auch eine clientseitige Prüfung hinzufügen.

Beispiel: Überprüfen Sie, ob die E-Mail sowohl auf Client- als auch auf Serverseite korrekt formatiert ist. Wenn Sie jedoch überprüfen, ob sie eindeutig ist, kann dies eine serverseitige Überprüfung sein.

Carra
quelle
1
"Überprüfen, ob es eindeutig ist" ist eine Überprüfung, KEINE Validierung, daher gilt dies nicht. Verstehe den Unterschied.
Billy.Bob
2
Hast du überhaupt gelesen, was du postest? Die Überprüfung, ob die E-Mail eindeutig ist, ist eine Validierung. Wenn Sie beispielsweise überprüfen, ob E-Mail und Passwort gültige Anmeldeinformationen sind, wird dies überprüft. In jedem Fall handelt es sich nur um ein Terminologieproblem.
Andrea
1

Ja, es ist keine schlechte Idee, beide zu verwenden. Wenn einfache Benutzereingabefehler auf der Clientseite abgefangen werden können, ist es sinnvoll, den Benutzer über diese Fehler zu informieren, bevor Daten gesendet und Ihr Server heruntergefahren werden. Wenn der Benutzer beispielsweise im Feld "E-Mail" etwas eingegeben hat, das nicht wie eine E-Mail-Adresse aussieht, oder im Feld "Kennwort" eine Zeichenfolge mit nur 5 Zeichen eingegeben hat und Sie wissen, dass für Ihre Site das Kennwort mindestens 6 Zeichen lang sein muss Sie sollten den Benutzer darüber informieren, bevor Sie etwas an den Server senden.

Es ist aus zwei Gründen wichtig, genau dieselbe Validierung auf dem Server zu duplizieren: 1) Was ist, wenn der Benutzer Javascript deaktiviert hat?

2) Der Benutzer hat in böswilliger Absicht versucht, Ihre clientseitige Validierung zu umgehen, was sehr einfach ist.

Dmitri
quelle