asp.net – 如何防止开放重定向攻击?
发布时间:2020-12-15 23:55:59 所属栏目: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 – .NET – 如何调试DLL?
- asp.net-mvc – 如何检查MVC cshtml页面中的调试模式
- asp.net-mvc-4 – 如果用户尝试通过URL访问其他网站页面,如
- 无法在ASP.NET VB站点中加载System.DirectoryServices.Acco
- asp.net-mvc – 跨应用程序进行表单身份验证的ServiceStack
- 如何将ASP.NET FormView绑定到单个记录?
- ASP.NET Core 1.0 ConfigurationBuilder().AddJsonFile(“a
- asp.net-mvc – 在Mvc ViewBag中检查成员是否存在
- 如何以编程方式找到一个ASP.NET App_Data文件夹路径
- asp.net-mvc – 如何在MVC5中为用户分配角色?
推荐文章
站长推荐
- controls – mvc显示模板中当前项的索引
- 了解ASP.Net会话的生命周期
- asp.net – 有谁知道Razor,Spark和NVelocity视图
- Asp.Net Mvc – 用JQuery替换Ajax.ActionLink
- asp.net – 可以在机器之间复制Cookie以假冒用户
- asp.net-mvc-3 – 返回404错误ASP.NET MVC 3
- asp.net-mvc – Request.GetOwinContext在单元测
- rest – 使用WebAPI删除多个ID删除端点?
- ASP.NET:HTTP错误500.19 – 内部服务器错误0x80
- ASP.NET MVC中是否有嵌套主页?
热点阅读