当前位置: 首页 > article >正文

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");
            }
        }

调用示例


http://www.kler.cn/a/228347.html

相关文章:

  • MySQL(4)多表查询
  • AI模型提示词(prompt)优化-实战(一)
  • 13.接口类和抽象类的区别
  • 微前端qiankun的基本使用(vue-element-admin作为项目模版)
  • CentOS 7乱码问题如何解决?
  • 机器学习10-解读CNN代码Pytorch版
  • JAVA斗地主逻辑-控制台版
  • 动态颗粒背景,适合VUE、HTML前端显示
  • kmp算法讲解
  • 华清远见嵌入式学习——春节作业——2.5日
  • [ubuntu]add-apt-repository 添加以及移除
  • 假期作业 2.2
  • 哪种安全数据交换系统,可以满足信创环境要求?
  • 视频业务像素、带宽、存储空间计算
  • OpenCV学习记录——平滑处理
  • 【ARM Trace32(劳特巴赫) 使用介绍 3.1 -- 不 attach core 直接访问 memory】
  • 【linux】校招中的“熟悉linux操作系统”一般是指达到什么程度?
  • ubuntu 安装 ffmpeg 6.0
  • 设计模式概述
  • 如何结合ChatGPT生成个人魔法咒语词库
  • 【UE 材质】球形遮罩材质
  • 【力扣经典面试题】189. 轮转数组
  • C++新特性 扩展和聚合类型
  • 网易腾讯面试题精选----50 个 Git 面试问题
  • 笔记本电脑的WIFI模块,突然不显示了,网络也连接不上
  • 计算机软件能力认证考试CCF-202312-1 仓库规划