Ich arbeite durch NerdDinner und ich bin ein wenig verwirrt über folgenden Abschnitt ...HTML-Codierung in MVC Eingang
Zuerst haben sie ein Formular für die Schaffung ein neues Abendessen, mit einem Bündel von Textfeldern hinzugefügt delcared wie:
<%= Html.TextArea("Description") %>
Sie zeigen zwei Möglichkeiten, dann bilden Eingabe in das Modell zur Bindung:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create() {
Dinner dinner = new Dinner();
UpdateModel(dinner);
...
}
oder:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Dinner dinner) { ... }
Ok, toll, das sieht bisher alles sehr einfach aus.
Dann etwas später auf sie sagen:
Es ist wichtig über Sicherheit immer paranoid, wenn jeder Benutzer Eingabe zu akzeptieren, und dies gilt auch, wenn Bindung Objekte Eingang zu bilden. Sie sollten immer HTML kodieren alle vom Benutzer eingegebenen Werte zu vermeiden HTML und JavaScript Injektion Angriffe
Huh vorsichtig sein? MVC verwaltet die Datenbindung für uns. Wo/wie soll man die HTML-Codierung machen?
so spielt es keine Rolle, was ich den Benutzer in das Formular eingeben lassen, solange ich nicht ausgeben wieder ohne kodiert? Ich weiß nicht wirklich, wie HTML-Injection funktioniert. – fearofawhackplanet
Ja. Es gibt viele Arten von Cross-Site-Scripting-Angriffen, aber eine einfache Überprüfung auf Ihrer eigenen Website ist die Eingabe von '' überall dort, wo der Benutzer Daten eingeben kann (einschließlich beim Erstellen seines Benutzernamens). Wenn Sie das Warndialogfeld sehen (vorausgesetzt, Sie haben JavaScript aktiviert), haben Sie einen Ort gefunden, der HTML-Codierung benötigt. Es ist am besten, HTML-Code ** all ** zu codieren und diese Codierung nur bei Bedarf zu entfernen. – RedFilter
ok danke orbman – fearofawhackplanet