过滤掉 ASP Web API 模型中的任何 XSS 代码

Filter out any XSS code in ASP Web API models

我有一个相当复杂的 asp.net 网络 API,我想全局过滤传递到网络中的所有字符串 api 并过滤掉任何 XSS 代码。

我打算使用 https://www.nuget.org/packages/AntiXss/

HtmlSantizationLibrary.Sanitizer.GetSafeHtmlFragment(someHtmlString);

所以我最关心的是在这里提出一个全球解决方案。我不想在任何地方单独手动调用 GetSafeHtmlFragment(),而是将其全局应用于所有传入字符串!

我研究了 ModelBinders,但可以找到一个好的解决方案。有什么建议吗?

好的。我试着提出一个solution/starting点。

首先你需要知道如何注册你的过滤器。我的假设是,您想检查每个请求:

 GlobalConfiguration.Configuration.Filters.Add(new AntiXssFilter());

现在,您必须创建一个过滤器来检查请求。 我不知道你到底有什么样的数据,但这应该是一个起点:

public class AntiXssFilter: FilterAttribute, IActionFilter
{
    void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
    {
       var request = filterContext.HttpContext.Request;
       // check your request for any xss violations.
       // e.g. request.InputStream

    }
}