Вы не можете указать или изменить белый список с библиотекой AntiXSS, что не странно, когда вы думаете об этом. Библиотека AntiXSS по умолчанию кодирует все символы, не входящие в следующий диапазон: 0..9a..zA..Z. Этот набор символов безопасен (и поэтому находится в белом списке), и нет необходимости кодировать их. Обратите внимание, что в библиотеке AntiXSS есть разные списки для кодирования javascript, html и url. Не используйте html-кодирование для URL-адресов, поскольку в вашем приложении будет дыра в безопасности.
Обратите внимание, что белый список на HtmlEncode
работает иначе, чем белый список на GetSafeHtmlFragment
. С HtmlEncode
вы говорите «пожалуйста кодируйте каждый символ, которого нет в белом списке», с GetSafeHtmlFragment
вы говорите «пожалуйста удалите все теги и атрибуты, которых нет на белом» список».
Когда вы используете ASP.NET 4.0, я бы посоветовал вам не использовать библиотеку AntiXSS (напрямую), а просто использовать встроенные механизмы (такие как HttpUtility) для кодирования Html. ASP.NET 4.0 позволяет настроить HttpEncoder в файле конфигурации . Вы можете написать свой собственный HttpEncoder
, который использует библиотеку AntiXSS (вероятно, будущая версия библиотеки AntiXSS будет содержать реализацию HttpEncoder
). Таким образом, все ваше приложение (и все элементы управления ASP.NET и пользовательские элементы управления) будет использовать кодировку белого списка вместо кодировки черного списка.
В ASP.NET 4.0 также добавлен новый кодовый блок для закодированного текста . Вы можете использовать Имя: <%: Model.FirstName %>
. Однако лично я нахожу <%= HttpUtility.HtmlEncode(Model.FirstName) %>
более явным.