为控制器动作参数创建过滤器属性防XSS攻击

发布于 2024-12-29 14:56:21 字数 719 浏览 2 评论 0原文

我有一个像这样的简单控制器:

[CustomFilter()]
public ActionResult Index( int? page ) {
    return View();
}


public class CustomFilterAttribute : ActionFilterAttribute
{
   public override void OnActionExecuting( ActionExecutingContext filterContext ) {
      base.OnActionExecuting( filterContext );
}

public override void OnActionExecuted( ActionExecutedContext filterContext ) {
      base.OnActionExecuted( filterContext );
   }
}

在主页(ASPX)中,如果我输入 http://localhost/home/index?page=

如何为此类攻击创建自定义过滤器并返回上一页而不显示红色页面(有错误)? 还是不可能?

I have a simple controller like that:

[CustomFilter()]
public ActionResult Index( int? page ) {
    return View();
}


public class CustomFilterAttribute : ActionFilterAttribute
{
   public override void OnActionExecuting( ActionExecutingContext filterContext ) {
      base.OnActionExecuting( filterContext );
}

public override void OnActionExecuted( ActionExecutedContext filterContext ) {
      base.OnActionExecuted( filterContext );
   }
}

In main page (ASPX), if I type http://localhost/home/index?page=<script> (is an example of XSS, I guess) instead of http://localhost/home/index?page=7 then the red page will appear (because in Visual studio I've installed AntiXSS addon).

How to create a custom filter for this type of attack and return the previous page without showing red page (with error) ?
Or is not possible ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浸婚纱 2025-01-05 14:56:21

不,过滤器永远不会被调用。您可以在 Application_Error 中执行类似的操作

检查此问题:ASP.NET MVC 应用程序自定义错误页面未在共享托管环境中显示

查看问题和答案。

No, the filter will never be called. you can do something similar in Application_Error

Check this question:ASP.NET MVC app custom error pages not displaying in shared hosting environment

look at the question and the answer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文