我在我的网站上使用GetSafeHtmlFragment,我发现除了<p>
和<a>
删除所有标签.
我研究过,我发现微软没有解决方案.
是否有任何取代它或有任何解决方案?
谢谢.
令人惊讶的是,4.2.1版本中的微软严重过度补偿了4.2 XSS库中的安全漏洞,现在一年后仍未更新.该GetSafeHtmlFragment
方法应该已重命名StripHtml
为我读某人在某处评论.
我最终使用了这个相关SO问题中建议的HtmlSanitizer库.我喜欢它通过NuGet作为一个包提供.
该库基本上实现了现在接受的答案使用的白名单方法的变体.但它基于CsQuery
HTML 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)
归档时间: |
|
查看次数: |
5113 次 |
最近记录: |