3

ASP.net アプリケーションで Fortify スキャンを実行しました。多くのヘッダー操作の問題があることがわかりました。すべての問題は Response.Redirect() を指しています。パラメータをエンコードした以下のコードを見てください。それでも、以下のコードはヘッダー操作の問題としてカウントされます。

            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);

問題を解決するためにここで変更する必要がある他に何が必要かを教えてもらえますか?

4

2 に答える 2

5

の部分をはずして代わりにServer.UrlPathEncode(page.root)使います。Server.Transfer()Response.Redirect()

Server.Transfer()ユーザーを同じサイトの別のページに転送し、誰かを誤って別のサイトに誘導する危険性をほとんどまたはまったくもたらしません。

Response.Redirect()誰かを別のサイトにリダイレクトしたい場合に適しています。

Request.Params[]また、Fortify はあいまいな可能性があるため、好まれない傾向があります。一部のサーバーでは、慎重な攻撃者が、リクエスト変数の 1 つとして名前の UTF-7 または非印刷バージョンを送信し、変数の名前に実際の XSS インジェクションを含めたり、GET リクエストを上書きしたりできる可能性があります。同じ名前の Cookie を持つ値。名前と値の両方が html エンコードされていることを確認し、Request.QueryString[parametername]代わりにRequest.Params[parametername]Fortify の問題を回避するために使用することを検討してください。

これで Fortify の問題を解決できることを願っています!

于 2012-11-09T22:55:09.803 に答える