Есть ли всесторонний HTML библиотека cleaner/Anti-Xss для.NET, которая также имеет определенный белый список. Я знаю, что Microsofts Anti-Xss является хорошим местом для запуска, но ему нужны хороший белый список для позволенных тегов HTML и CSS. Кто-либо знает о чем-то?
Что не так с библиотекой Microsoft Anti-XSS (о которой вы упомянули)?
У них есть комплексная очистка HTML, которая фильтрует символы на основе белого списка, анализирует HTML, фильтрует узлы на основе белого списка, а затем регенерируют (безопасный) HTML. Вы можете изменить белые списки (поскольку код открыт), но я не уверен, что вы захотите.
Использование также простое:
var sanitizedHtml = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(inputHtml);
Согласно MSDN (см. "Разрешение ограниченного ввода HTML") лучший способ обезопасить ввод HTML - это вызвать HttpUtility.HtmlEncode() на вашем входе и затем выборочно заменить кодировку на всех ваших тегах из белого списка, например:
<%@ Page Language="C#" ValidateRequest="false"%>
<script runat="server">
void submitBtn_Click(object sender, EventArgs e)
{
// Encode the string input
StringBuilder sb = new StringBuilder(
HttpUtility.HtmlEncode(htmlInputTxt.Text));
// Selectively allow and <i>
sb.Replace("<b>", "<b>");
sb.Replace("</b>", "");
sb.Replace("<i>", "<i>");
sb.Replace("</i>", "");
Response.Write(sb.ToString());
}
</script>
Смотрите также эту статью.