Отказ от ответственности - это основано на очень параноидальном определении того, что такое «доверенный результат», но когда дело доходит до веб-безопасности, я не думаю, что вы МОЖЕТЕ быть слишком параноидальным.
Взято со страницы OWASP, ссылки на которую приведены ниже: Ненадежные данные чаще всего
часто данные, поступающие из HTTP-запроса, в виде URL
параметры, поля формы, заголовки или файлы cookie. Но данные, которые поступают из
базы данных, веб-сервисы и другие источники часто не заслуживают доверия
с точки зрения безопасности. То есть это не могло быть идеально
ПРОВЕРЯЕМЫЕ.
В большинстве случаев вам нужна дополнительная защита, если вы берете данные из ЛЮБОГО источника и выводите их в HTML. Это включает в себя данные, извлеченные из файлов, баз данных и т. Д. - гораздо больше, чем просто ваши текстовые поля. У вас может быть совершенно заблокированный веб-сайт, и кто-то может напрямую перейти в базу данных с помощью другого инструмента и иметь возможность вставлять вредоносный скрипт.
Даже если вы берете данные из базы данных, где только надежный пользователь может ввести данные, вы никогда не узнаете, будет ли этот доверенный пользователь непреднамеренно скопировать и вставить какой-либо вредоносный скрипт с веб-сайта.
Если вы абсолютно не доверяете каким-либо данным, которые будут выводиться на ваш сайт, и у сценария нет возможности непреднамеренно (или злонамеренно, в случае злоумышленника или недовольного сотрудника) поместить опасные данные в систему, вы должны очистить весь вывод.
Если вы этого еще не сделали, ознакомьтесь с информацией здесь: https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
и просмотрите другие известные угрозы на сайте.
В случае, если вы пропустите это, библиотека Microsoft.AntiXss - это очень хороший инструмент, который будет в вашем распоряжении. В дополнение к более совершенной версии функции HtmlEncode, она также имеет полезные функции, такие как GetSafeHtmlFragment (), когда вы хотите включить ненадежный HTML в свой вывод и очистить его. Эта статья показывает правильное использование: http://msdn.microsoft.com/en-us/library/aa973813.aspx Статья старая, но все еще актуальна.