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

本文关键字:任何 XSS 代码 模型 ASP Web API 过滤 | 更新日期: 2023-09-27 18:06:08

我有一个相当复杂的asp.net web API,我想通过传递到web API的任何字符串进行全局过滤,并过滤掉任何XSS代码。

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

HtmlSantizationLibrary.Sanitizer.GetSafeHtmlFragment(someHtmlString);

所以我最关心的是想出一个全局解决方案在这里。我不想手动调用 GetSafeHtmlFragment()到处单独,但应用它全局所有传入字符串!

我已经研究了 modelbinder ,但可以找到一个很好的解决方案。任何建议吗?

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

好的。我试着提出一个解决方案/出发点。

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

 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
    }
}