gpt4 book ai didi

asp.net - 重定向前检查 ReturnUrl 是否有效

转载 作者:行者123 更新时间:2023-12-02 02:34:44 26 4
gpt4 key购买 nike

我正在使用 ASP.NET 成员资格和表单例份验证,在重定向到 returnURL 之前我想验证它。对于那些不熟悉工作流程的人来说,基本上如果您请求一个需要您进行身份验证的页面,您将被重定向到登录页面。在 URL 字符串中,您会看到一个名为 returnURL 的参数,例如 http://example.com/login.aspx?ReturnUrl=%2fprotected%2fdefault.aspx

无论您是在 Response.Redirect(returnURL) 等重定向中使用它,还是通过 FormsAuthentication.RedirectFromLoginPage 方法间接使用它,它都会在不验证 returnURL 的情况下通过。 FormsAuthentication.RedirectFromLoginPage 确实进行了安全检查以确保它没有离开域,但这仍然不能阻止某人放置足够多的随机字符以导致错误。

我尝试使用 System.IO.File.Exists(Server.MapPath(returnURL)) 但如果有足够多的非法字符,它会导致 Server.MapPath 出错。

注意:URLEncoding 不起作用,因为我们不是在清理参数,而是在清理主要 URL。

关于验证或清理 returnURL 值的任何其他建议?

最佳答案

这篇文章解释了 ReturnURL 的结构 http://blogs.msdn.com/vijaysk/archive/2008/01/24/anatomy-of-forms-authentication-return-url.aspx

正如您正确声明的那样,域已被检查,因此在加密您的身份验证 cookie 并确保您使用 https 的同时,我认为要阻止无效的 ReturnURL,您唯一可以做的就是忽略它,并重定向所有登录到您网站的主页或顶层,让用户可以通过菜单导航回来。一个很好的例子就是当您登录 hotmail 时。

关于asp.net - 重定向前检查 ReturnUrl 是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2300366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com