asp.net – 如何防止开放重定向攻击?
发布时间:2020-05-23 23:17:30 所属栏目:asp.Net 来源:互联网
导读:什么是防止开放重定向攻击的最佳方法.目前我正在开发asp.net网站.我想确保在成功登录后不将用户重定向到外部链接? 编辑:是否可以在不更改现有代码的情况下实施解决方案? 我假设你正在使用 login control. 您应该检查ReturnUrl参数是否是本地URL(而不是指向
|
什么是防止开放重定向攻击的最佳方法.目前我正在开发asp.net网站.我想确保在成功登录后不将用户重定向到外部链接? 编辑:是否可以在不更改现有代码的情况下实施解决方案? 解决方法我假设你正在使用 login control.您应该检查ReturnUrl参数是否是本地URL(而不是指向不同域的那个). loggedin event将是一个做这样的事情的好地方: void OnLoggedIn(object sender,EventArgs e)
{
string returnto = Request.QueryString["ReturnUrl"];
if (returnto != "" and isLocalUrl(returnto)) Response.Redirect(returnto);
}
在哪里可以使用给定here的IsLocalUrl的定义 private bool IsLocalUrl(string url)
{
if (string.IsNullOrEmpty(url))
{
return false;
}
Uri absoluteUri;
if (Uri.TryCreate(url,UriKind.Absolute,out absoluteUri))
{
return String.Equals(this.Request.Url.Host,absoluteUri.Host,StringComparison.OrdinalIgnoreCase);
}
else
{
bool isLocal = !url.StartsWith("http:",StringComparison.OrdinalIgnoreCase)
&& !url.StartsWith("https:",StringComparison.OrdinalIgnoreCase)
&& Uri.IsWellFormedUriString(url,UriKind.Relative);
return isLocal;
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 从referrer获取参数
- 使用ASP.NET通过POST接收(和发送)XML
- asp.net-mvc – 将返回文件的长时间运行进程
- Asp.net 实现Session分布式储存(Redis,Mongodb,Mysql等) se
- asp.net – System.Reflection.Assembly.LoadFile锁定文件
- asp.net – 没有回发的日历控件
- asp.net – 关键字不支持:’元数据’.使用MVC3的Entityt框
- 在asp.net中将用户变量存储在数据库与会话中
- asp.net-mvc – 可以浏览DataAnnotations的自定义Html帮助器
- asp.net-mvc – MVVM ViewModel vs. MVC ViewModel
推荐文章
站长推荐
- asp.net – Linq to Sql – 根据环境变量动态设置
- asp.net-mvc – 使用CSVHelper将流输出到浏览器
- asp.net-mvc – 如何在MVC Filter属性中解析依赖
- asp.net – MSBuild / WebDeploy – 如何防止它删
- asp.net-mvc-3 – 如何在MVC路由中组合CatchAll和
- asp.net – 启用Application Insights会使Web应用
- ASP.NET Forms Authentication阻止在Login.aspx上
- asp.net – 什么是crossdomain.xml文件?
- asp.net-mvc – 在ASP .NET MVC 3中使用XSLT
- 当通过ASP.NET成员资格检查用户角色时,Semaphore
热点阅读
