Wo tun Sie Ihre Validierung? model, controller oder view

Worauf legen Sie Benutzer-Eingabe-Validierung in einer web form-Anwendung?

  1. Anzeigen: JavaScript-client-Seite
  2. Controller: Server-side-Sprache (C#...)
  3. Modell: Datenbank (gespeicherte Prozeduren oder Abhängigkeiten)

Ich denke, es ist eine Validierung erforderlich, die von jeder Ebene:

  1. Hat der Benutzer die Eingabe ein vernünftiger Wert
    • sind Termine aktuelle Termine, zahlen sind wirklich zahlen ...
  2. Tun alle Prüfungen im 1. wieder plus Kontrollen für böswillige Angriffe(IE XSS oder SQL-injection)
    • Der durchgeführten Prüfungen im 1. sind, hauptsächlich, um ein server-roundtrip, wenn der Benutzer einen Fehler macht.
    • Da Sie fertig sind, auf der client-Seite in javascript, die Sie nicht Vertrauen können, dass Sie ausgeführt wurden. Überprüfen Sie diese Werte wieder aufhören wird zu einigen gefährlichen Angriffen.
  3. Sind Abhängigkeiten erfüllt sind (dh. hat der Benutzer einen Kommentar hinzufügen, um eine berechtigte Frage)
    • Ein gutes interface macht diese sehr schwer zu verletzen. Wenn etwas gefangen wird, hier etwas sehr schief ging.

[inspiriert von diese Antwort]

  • *Wo *Controller-Bitte Korrekturlesen.
  • Dank Rich B. Korrekturen vorgenommen.
  • mehr Korrekturlesen erforderlich: "mianly"="hauptsächlich"
  • Das Modell ist nicht nur die Datenbank, es ist die business-Logik der Anwendung. Um nicht gegen das TROCKEN die Validierung sollte durchgeführt werden in der Modell-Ebene.
InformationsquelleAutor alumb | 2008-09-25
Schreibe einen Kommentar