GetSafeHtmlFragment删除所有html标签

Ham*_*eza 2 c# antixsslibrary

我在我的网站上使用GetSafeHtmlFragment,我发现除了<p><a>删除所有标签.

我研究过,我发现微软没有解决方案.

是否有任何取代它或有任何解决方案?

谢谢.

Bar*_*art 7

令人惊讶的是,4.2.1版本中的微软严重过度补偿了4.2 XSS库中的安全漏洞,现在一年后仍未更新.该GetSafeHtmlFragment方法应该已重命名StripHtml为我读某人在某处评论.

我最终使用了这个相关SO问题中建议的HtmlSanitizer库.我喜欢它通过NuGet作为一个包提供.

该库基本上实现了现在接受的答案使用的白名单方法的变体.但它基于CsQueryHTML Agility库而不是HTML Agility库.该软件包还提供了一些其他选项,例如能够保存样式信息(例如HTML属性).使用这个库导致我的项目中的代码如下所示,至少 - 代码比接受的答案少得多:).

using Html;

...

var sanitizer = new HtmlSanitizer();
sanitizer.AllowedTags = new List<string> { "p", "ul", "li", "ol", "br" };
string sanitizedHtml  = sanitizer.Sanitize(htmlString);
Run Code Online (Sandbox Code Playgroud)