3
A
回答
9
我假设你正在使用的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
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;
}
}
+0
谢谢,@ Paolo,但我不想改变现有的代码,是否有可能实现? – kvc 2011-12-20 12:21:33
+0
如果您的约束是无法重新编译,则此更改应直接在登录页面的HTML中内联执行(请参阅[LoggedIn事件的文档](http://msdn.microsoft.com/zh-cn/library例如/system.web.ui.webcontrols.login.loggedin.aspx) – 2011-12-20 13:32:30
相关问题
- 1. 防止重复blockchain攻击
- 2. 如何防止重播攻击?
- 3. 如何防止XXE攻击
- 4. 你如何防止特定CSRF攻击
- 5. 摘要认证如何防止重放攻击?
- 6. PHP:如何完全防止XSS攻击?
- 7. 如何防止暴力攻击?
- 8. 盐如何防止字典攻击?
- 9. 如何防止二阶SQL攻击?
- 10. django admin如何防止蛮力攻击?
- 11. ASP.NET Core中的Data Protection API是否可防止重放攻击?
- 12. 防止输入型攻击
- 13. Json.Net Wrapper防止Xss攻击
- 14. 防止MDX注入攻击
- 15. angularjs防止XSS攻击
- 16. Timestamp如何帮助防止Web服务中的重播攻击
- 17. 如何正确使用JTI声明来防止重播攻击?
- 18. 阻止IP地址,防止DoS攻击
- 19. htaccess:如何防止递归重定向?
- 20. Angular2,如何防止HTTP重定向
- 21. Android防止人为攻击SSL中间人攻击
- 22. PHP可能的头重定向攻击?
- 23. 如何防止或阻止拒绝收入攻击?
- 24. 防止Xmlhttprequest重定向
- 25. 防止主页重定向
- 26. 防止主机重定向
- 27. 防止网站重定向
- 28. 防止jQuery的CSRF和XSRF攻击$ .post
- 29. 防止攻击者获得系统
- 30. 防止对JBoss 4.2的XXE攻击4.2
web表单或MVC的IsLocalUrl的定义是什么? – 2011-12-20 11:50:49
我正在使用webforms – kvc 2011-12-20 11:52:04