过滤掉 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
}
}
我有一个相当复杂的 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
}
}