Wenn eine Benutzereingabe zu einer Webseite hinzufügen, sollten sie (es sei denn, es HTML ist natürlich :) XSS-Angriffe codiert werden usw., um zu verhindern .. wie folgt aus:HTML-Codierung auf die Schicht Geschäft Hinzufügen
litForename.Text = HttpUtility.HtmlEncode(MyUser.Forename);
I Ich stelle eine Vorlage zusammen, um meine Business-Logik-Ebene zu generieren, und ich denke daran, sie zu verwenden, um die ganze Codierung durchzuführen, sobald die Daten aus der Datenbank kommen, bevor sie den UI-Code erreichen. Dies stellt sicher, dass alles codiert ist, was sein sollte (ich würde natürlich die Spalten ausschließen, die Xhtml/Xml-Zeichenfolgen enthalten). Eine Überlastung der Datenzugriffsmethoden wird das Abrufen von Daten ohne Codierung erlauben (so es bearbeitet werden kann):
// Get a 'User' entity with all the string fields HTML encoded
BLL.Users.GetById(int userId)
// Get a 'User' entity with optional HTML encoding
BLL.Users.GetById(int userId, bool useHtmlEncoding)
Ist dies ein Ansatz, dass jeder andere Anwendungen, oder es eine dumme Idee ist? Was sind die Vor- und Nachteile?
Danke.
Ich stimme zu - danke für die Gesundheitsprüfung. – Nick