有关在ASP.NET MVC中放置AntiXSS调用的建议

JP.*_*JP. 5 xss asp.net-mvc antixsslibrary

我试图在我的ASP.NET MVC应用程序中找到防止跨站点脚本的最佳方法.我计划使用Microsoft的AntiXSS库并基本上保护两个级别:1)保护常规文本框(即那些只应包含纯文本的文本框和2)保护可生成HTML的富文本框.图书馆本身非常简单,但我很难决定在何处进行验证.我使用强类型HTML帮助程序并直接绑定我的模型/视图模型,并希望避免在每个操作方法中单独应用AntiXSS.另外,绝对不想在我的帖子操作上关闭validateinput,如果我在我的模型/ viewmodel的某个属性中传递HTML,这是一个要求.

是否可以在ASP.NET MVC中注入AntiXSS,以便在渲染视图(解码)之前和进入动作过滤器(编码)之前应用它?

提前致谢

小智 2

您可以重写OnActionExecuting的方法System.Web.Mvc.Controller并使用参数的ActionDescriptor属性来确定当前正在运行的操作。然后(我认为)您可以修改要执行的编码。ActionExecutingContextOnActionExecutingActionParametersActionExecutingContext

您是否只打算使用它来检查不雅内容 ( AntiXss.GetSafeHtml),还是还计划进行编码 ( AntiXss.HtmlEncode)?如果是后者,我会考虑它,因为它将您的输出格式限制为仅 HTML,这现在可能没问题,但如果要在其他地方使用此数据,可能会受到限制。