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