gpt4 book ai didi

asp.net - 在 asp.net 上从 Fortify 扫描打开重定向或 header 操作问题

转载 作者:行者123 更新时间:2023-12-01 11:57:19 26 4
gpt4 key购买 nike

我们对 ASP.net 应用程序进行了 Fortify 扫描。我们发现有很多标题操作问题。所有问题都指向 Response.Redirect()。请查看下面我对参数进行编码的代码。即使这样,以下代码也被视为 header 操作问题。

            int iCount = 0;
foreach (string Name in Request.QueryString.Keys)
{
iCount++;
if (iCount > 1)
{
url += "&";
}
url += Name;
if (Request.Params[Name]!=null)
{
url += "=" + AntiXss.UrlEncode(Request.Params[Name]);
}
}
Response.redirect(Server.UrlPathEncode(page.root) + "\Test.aspx?" + url);

有人可以让我知道这里还需要更改什么以解决问题吗?

最佳答案

去掉 Server.UrlPathEncode(page.root) 部分并使用 Server.Transfer() 而不是 Response.Redirect() .

Server.Transfer() 将用户转移到同一站点上的另一个页面,并且几乎不会造成意外将某人定向到另一个站点的危险。

Response.Redirect() 适用于将某人重定向到另一个站点。

此外,由于可能存在歧义,Fortify 不喜欢 Request.Params[]。细心的攻击者可能会在某些服务器上发送一个 UTF-7 或非打印版本的名称作为请求变量之一,并让该变量的名称包含实际的 XSS 注入(inject),或覆盖 GET 请求值与同名的 cookie。确保名称和值都经过 html 编码,并考虑使用 Request.QueryString[parametername] 而不是 Request.Params[parametername] 以避免 Fortify 出现更多问题。

希望这能让您解决 Fortify 问题!

关于asp.net - 在 asp.net 上从 Fortify 扫描打开重定向或 header 操作问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5743285/

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