CAT.NET表示我的网站存在跨站点重定向漏洞。 它说下面的代码是有问题的,可能导致重定向攻击。
this.Response.Redirect(this.Page.Request.Url.ToString());
我相信当URL中存在用户可控输入时,会发生重定向攻击。但在这种情况下,URL中不存在用户输入。
有人能告诉我这是真的是一个问题,还是只是误报? 如果这确实是一个问题而不是为什么那么解决方案是什么?
答案 0 :(得分:1)
当有一个参数添加到请求时,会发生跨站点重定向漏洞,该参数指定在执行操作后用户必须重定向到哪个页面(通常在使用表单身份验证时)。
网址如下所示:www.mysite.com/Logon?returnURL=www.mysite.com/Logon
恶意操作包括使用错误的网址替换此参数:www.mysite.com/Logon?returnURL=www.hackerSite.com/Logon
通过检查returnURL
是否属于本地,可以很容易地避免这种情况
if (Url.IsLocalUrl(returnUrl))
在您的情况下,它可能是一个正面的,但在重定向之前检查有效性或重定向URL始终是最佳做法。