Нужно ли добавлять какие-либо проверки на интерфейс или бэкэнд, чтобы убедиться, что они не публикуют опасные сценарии и т. Д.
Нет, вам не следует об этом беспокоиться.Поскольку вы используете параметризованные запросы для хранения данных, чтобы избежать внедрения SQL, реляционная база данных не очень заботится о том, какой текст вы к ней добавляете.
Проблемы могут возникнуть при попытке отобразить эти данные обратно на веб-странице.Именно в этот момент вы должны убедиться, что он правильно закодирован в HTML.
Для бритвы:
@...
Для веб-форм (ASP.NET 4.0)
<%: ...
Для веб-форм (до ASP.NET 4.0)
<%= Html.Encode(...
Или для всего вышеперечисленного:
Html.DisplayFor(x => x.SomePropertyOftheViewModel)
Какой самый простой способ проверить, что то, что публикуется, можно хранить и вернуть клиенту для отображения позже.
Параметризованные запросы для хранения данных (только если вы используете реляционную базу данных) и кодирование HTML для отображения обратно.
Вы также можете найти следующую запись в блоге полезно о библиотеке Microsoft Anti-Xss .