我已经阅读了很多关于 XSS 和如何处理的关于 SO 的帖子。通常,共识是白名单而不是黑名单,避免使用正则表达式(太多变体无法处理)。
我正在开发一个 ASP.Net MVC3 应用程序。我需要能够显示来自用户条目的 HTML(例如 <strong>、<ul>、<li> 等...),但我不希望有任何 XSS 风险。
我正在通过 Nuget 使用 AntiXSS 包。在我的模型中,我有
[AllowHtml]
public string UserDetails{ get; set; }
在我看来,我将 TinyMCE 连接到了 textarea。
在我的控制器中,我从视图中获取帖子并对其进行清理:
using Microsoft.Security.Application;
...
string SanitizedDetails = Sanitizer.GetSafeHtmlFragment(model.UserDetails);
我的问题:我做对了吗?我是否受到了大多数 XSS 问题的保护,或者我是在吠叫错误的树吗?