ASP.NET Core 预防开放式重定向攻击

写在前面

为预防钓鱼网站的常用套路,在进行 Web 应用程序的开发时,原则上应该将所有由用户提交的数据视为不可信。如果应用程序中包含了基于 URL 内容重定向的功能,需要确保这种类型的重定向操作只能在应用本地完成,或者明确判断其重定向到的是已知 URL,绝不能是 querystring 中可能包含的任何 URL。

在 ASP.NET Core 的 MVC基类中就提供了两种判断是否为本地URL的方法,这边做个记录;

两个方法分别为:LocalRedirect 和 IsLocalUrl 。

代码实现


        public ActionResult Index()
        {
            return Content("Index");
        }

        public IActionResult SomeAction(string redirectUrl)
        {
            return LocalRedirect(redirectUrl);
        }

        private IActionResult RedirectToLocal(string returnUrl)
        {
            if (Url.IsLocalUrl(returnUrl))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction(nameof(WeatherForecastController.Index), "WeatherForecastController");
            }
        }

调用示例

相关推荐

  1. CSRF,XSS攻击预防

    2024-02-05 13:48:02       41 阅读
  2. OTP防攻击

    2024-02-05 13:48:02       28 阅读
  3. http请求定向

    2024-02-05 13:48:02       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-05 13:48:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-05 13:48:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-05 13:48:02       82 阅读
  4. Python语言-面向对象

    2024-02-05 13:48:02       91 阅读

热门阅读

  1. Rust基础拾遗--看的不多只看一篇--基础

    2024-02-05 13:48:02       54 阅读
  2. 【Golang】自定义logrus日志保存为日志文件

    2024-02-05 13:48:02       51 阅读
  3. Python判断当前运行环境是否是jupyter notebook

    2024-02-05 13:48:02       47 阅读
  4. Linux 常用命令

    2024-02-05 13:48:02       53 阅读
  5. golang 创建unix socket http服务端

    2024-02-05 13:48:02       49 阅读
  6. Pandas 条件 关键字过滤

    2024-02-05 13:48:02       43 阅读
  7. SplashScreen使用

    2024-02-05 13:48:02       50 阅读
  8. 观察者模式(Observer)

    2024-02-05 13:48:02       49 阅读
  9. 过年手机推荐

    2024-02-05 13:48:02       45 阅读
  10. 前端学习之路(2) Vue3响应式模式设计原理

    2024-02-05 13:48:02       34 阅读
  11. Redis:bigkeys内存分析

    2024-02-05 13:48:02       51 阅读
  12. php 函数三

    2024-02-05 13:48:02       40 阅读
  13. 两次NAT

    两次NAT

    2024-02-05 13:48:02      49 阅读