是否有适用于 .NET 的全面的 Html 清洁器/Anti-Xss 库,它也具有定义的白名单。我知道微软的 Anti-Xss 是一个很好的起点,但它需要一个好的白名单来允许 html 标签和 css。有人知道吗?
问问题
3721 次
2 回答
10
Microsoft 的Anti-XSS库(您已经提到过)有什么问题?
他们有全面的 HTML 清理功能,可以根据白名单过滤字符、解析 HTML、根据白名单过滤节点,然后重新生成(安全的)HTML。您可以更改白名单(因为代码已打开),但我不确定您是否愿意。
用法也很简单:
var sanitizedHtml = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(inputHtml);
于 2010-05-05T13:09:38.333 回答
1
根据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>
另请参阅这篇文章。
于 2010-01-12T21:05:23.377 回答