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

写在前面

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

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

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

代码实现

cs 复制代码
        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");
            }
        }

调用示例

相关推荐
百***812711 分钟前
【SpringBoot】SpringBoot中分页插件(PageHelper)的使用
java·spring boot·后端
百***864612 分钟前
SpringBoot中自定义Starter
java·spring boot·后端
q***071413 分钟前
VScode 开发 Springboot 程序
java·spring boot·后端
q***465213 分钟前
Spring中使用Async进行异步功能开发实战-以大文件上传为例
java·后端·spring
Codebee1 小时前
Qoder CLI 与 OneCode 平台深度整合技术实践:CLI委托驱动的开发范式革新
后端
码事漫谈1 小时前
C++程序执行起点不是main:颠覆你认知的真相
后端
可观测性用观测云1 小时前
玩转 Pipelines 之修正链路错误状态码
后端
码事漫谈1 小时前
C++26:开启新纪元
后端
龙卷风04052 小时前
深入理解Spring AI Alibaba多Agent系统:图结构驱动的智能协作
人工智能·后端
用户8356290780512 小时前
C# 高效生成 Word 表格:复杂表格创建实战指南
后端·c#