Open Redirect
易受 Open Redirect 攻击的应用程序:
- 你的应用程序可以重定向到请求指定的 URL,例如查询字符串或表单数据
- 执行重定向而没有检查 URL,是否是本地 URL
- 用户被欺骗点击了电子邮件中的链接,返回的 URL 地址已经被设置为攻击者的网站
http://example.com/account/login?returnUrl=http://exampie.com/account/login
- 用户在真网站上成功的登录,但是被重定向到了攻击者的网站
- 用户在假网站上再次被要求登录,输入信息,将用户重定向回真实站点
ASP.NET Core 中预防 Open Redirect
方法一 LocalRedirect:if (!string.IsNullOrEmpty(returnUrl))
{
return LocalRedirect(returnUrl);
}
方法二 Url.IsLocalUrl:
if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}