При добавлении пользовательского ввода на веб-страницу его следует (если, конечно, это не HTML-код :) кодировать, чтобы предотвратить атаки XSS и т. Д., Например:
litForename.Text = HttpUtility.HtmlEncode(MyUser.Forename);
Я собираю шаблон для генерации уровня бизнес-логики и думаю использовать его для выполнения всего кодирования, как только данные поступают из базы данных, прежде чем они попадут в код пользовательского интерфейса. Это обеспечит кодирование всего, что должно быть (я бы, очевидно, исключил столбцы, содержащие строки Xhtml / Xml). Перегрузка методов доступа к данным позволит получать данные без кодирования (поэтому их можно редактировать):
// 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)
Это подход, которым кто-то еще пользуется, или это глупая идея? Какие плюсы и минусы?
Спасибо.