Frage

Gibt es einen hohen Grund für eine Web-Anwendung sowohl Client-Seite und Server-Seite Validierungen haben?

War es hilfreich?

Lösung

Da Ihre Client-seitige Validierung unterminiert werden kann.

Zum Beispiel -. Im Web, wenn Sie Javascript verwenden, für die Validierung, es ist sehr einfach, entweder wiederum Javascript ausgeschaltet oder ändern, wie es funktioniert Tools wie Firebug mit

Ereignis mit anderem Client / Server-Verfahren ist es möglich, dass die Datenverbindung unterlaufen werden und die „validiert“ Daten können auf den Server, auf dem Weg geändert werden ( Man in the Middle Angriff).

Im Allgemeinen ist die Maxime „nie dem Vertrauen der Kunden“ ist der Grund dafür, dass Sie immer validate auf dem Server benötigen.

Sie können in diesem Fall fragen, warum validate auf dem Client? Um ein unmittelbares Feedback zu liefern.

Andere Tipps

Der Benutzer kann die Validierung Javascript lokal verändern (Speichern Sie die Seite und tun etwas mit ihm) oder Javascript in Browser deaktiviert werden. Also in diesem Fall der clientseitige Validierung ist nutzlos. Daher sollten Sie auch auf dem Server überprüfen

Die clientseitige Validierung gibt dem Benutzer eine unmittelbare Rückmeldung, ohne die Seite zu laden warten. Allerdings, wenn der Client deaktiviert clientseitige Skripts (z JavaScript deaktiviert), die Validierung nicht ausgelöst, weshalb Sie den Server müssen die Werte auch überprüfen.

Client-Seite wird entfernen (in der Theorie), um die Mehrheit der Validierung Probleme, bevor Sie den Server erreichen (obwohl dies nicht immer der Fall ist, wenn JavaScript deaktiviert ist / editierten usw.). Dies wird jegliche ‚Strain‘ / unnötige Verarbeitung von dem Server entfernen, indem die Last auf dem Client-Gerät platziert Validierung durchzuführen.

Server-Seite werden alle Validierungs Probleme fangen, die aus irgendeinem Grund wurden nicht von der Client-Seite Validierung gefangen.

Client-seitige Validierung ist ein Plus, aber nicht notwendig. Sie MÜSSEN serverseitige Validierung (ssv) verwenden, weil, wenn Sie Benutzerinformationen sind zu akzeptieren, sollten Sie immer behandeln als „feindlich“ ist. Wenn diese Daten auch in eine Datenbank eingespeist wird, ssv ist die letzte Verteidigungslinie, weil Sie Junk oder fehlerhafte Daten nicht in der Datenbank wollen.

Client-seitige Validierung ist nicht kugelsicher, und daher, wenn etwas auf Client-Seite überprüft wird, dass es bedeutet nicht gültig sein wird, wenn es auf den Server kommt.

Client Side Validierung wird für die folgenden
verwendet 1) Konformation von Daten zu Länge und das Format Constraints
2) sofortige Anzeige oder Rückmeldung an den Benutzer

Server Side Validation
1) fortgeschritteneren Validierungen gegen Geschäftslogik
2) Kontrolle auf Veränderungen in Kriterium. zum Beispiel bestellen Sie ein Buch bei Amazon und nach nur, wenn Sie Prüfung Sie einen Hinweis erhalten, dass das Buch nicht am Lager ist, weil jemand anderes es gekauft hat, nur wenige würde vor
3) Überprüfen Sie, ob der beabsichtigte Benutzer die Daten geschrieben hat. Client-Seite Sachen wie Cookies und Javascript können daher manipuliert werden, der Server muss zum Authentifizieren und taint überprüft die Daten kommen durch.

So Server-seitige Validierung wird als die primäre Verteidigungslinie gegen bösartige Daten erforderlich und auch für die Daten gegen erweiterte Business-Logik zu prüfen.

Der Zweck der Echtzeit-clientseitige Validierung (das heißt, wenn der Benutzer bewegt sich von Feld zu Feld statt, nachdem der Benutzer Hits SUBMIT) ist es, die Nutzer-Feedback so schnell wie möglich zu geben. Wenn die Sozialversicherungsnummer, zum Beispiel 9 Ziffern erfordert, und der Benutzer 8 eingegeben haben, möchten Sie nicht warten, bis der Benutzer den Rest des Formulars abgeschlossen ist und schlagen SUBMIT den Fehler hinzuweisen, auch wenn die Validierung tritt auf Client-Seite. Warten, bis Zustellen nach zu validieren Client-Seite ist fast sinnlos - das alles tut Ersatz ist Ihr Server und Ihre Bandbreite. Unter Hinweis darauf, Fehler wie sie gemacht werden führt in der Regel in einer höheren Rate von Ausfüllhilfe, weil es eine einfachere Erfahrung insgesamt für den Anwender ist - es wird keine Liste der Fehler sein: „Bitte korrigieren Sie alle die Fehler unten“. Aber Sie müssen noch serverseitige Validierung haben die Datenintegrität in jedem Fall zu gewährleisten. Der Nachtclub Türsteher steht vor der Clubtür nicht auf dem Parkplatz über die Straße.

Wenn Sie eine Anwendung mit mehreren Tabellen in der Datenbank haben, Ihre serverseitige Validierung könnte nur eine Reihe von Beschränkungen sein (den Teil des Datentabelle Design). Wir denken, dass wir haben keine Validierung auf einer Server-Seite aber, weil es nicht eine Mitte-Server-Schicht, sondern eine DB-Schicht Einschränkungen.

Dann können wir sagen, die Vorteile von relationaler Datenbank mit - basierend auf Integrität (wir wissen, dass unsere Datenstruktur sicher ist). In den meisten Fällen können wir nur Client-seitige Validierung verwenden, um ein Client eine Instanz Feedback, seine Handlungen zu liefern. Es könnte kein kritisches Problem, nicht eine zusätzliche Validierung in Server-Side-Schicht zu haben, in Controller auf einem der Server-Seite Code.

Wir können also sagen, dass für einige / den meisten Fällen wir nur Client-seitige Validierung verwenden. Server-seitige Validierung ist - Sonderfall wie: zu überprüfen, ob etwas schon gekauft, wenn Kunde ein Formular Kauf einreicht.

Das ist nicht schlechte Idee, nicht wiederholen sich bei der Validierung auf beiden Seiten.

Natürlich gibt es Anwendungen, die viel Aufmerksamkeit auf ihre Daten benötigen, dann serverseitige Validierung nicht nur wichtig ist (wie ein Teil des Geschäftsmodells Sicherheit, sondern die Testabdeckung für die meisten Anwendungsfälle -. Für Kunden Eingang

Aber wenn es nur eine Website mit verschiedenen Formen ... dann glaube ich Datenbank Einschränkungen und Client-seitige Validierung ist eine gute Wahl.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top