6

ASP.Net と C# のレガシー Web アプリケーションがあり、ベラコード スキャンによって発生した約 400 プラスのクロス サイト スクリプティングの欠陥が発生しています。サンプルの Web アプリケーションを作成して問題をシミュレートしたところ、文字列入力を直接使用していると必ず問題が発生することがわかりました。実行することでベラコードHttpUtility.HtmlEncode(TextBox1.Text);"は満たされますが、この変更を 400 箇所すべてに適用することは現実的ではありません。すべての入力が1か所でエンコードされ、どこでも変更する必要がないように、httphandlerにプラグインを実装する方法を探しています。これが可能であれば、誰かが私を操縦してください. よろしくお願いします。

StringOps strop = new StringOps();
        string txt1, txt2;
        txt1 = HttpUtility.HtmlEncode(TextBox1.Text);
        txt2 = HttpUtility.HtmlEncode(TextBox2.Text);
        Response.Write(strop.Add(txt1, txt2));

HttpUtility.HTMLEncode 行を削除すると、Veracode が文句を言います。この文字列操作を行う場所が非常に多いため、これをどこにでも実装することは現実的ではありません。このエンコーディングを 1 つの場所に実装し、すべての応答と要求がそのパイプライン (HTTPHandler と HTTPModule など) を通過するようにすることは可能でしょうか。

4

2 に答える 2

0

私も asp.net 1.0 または 2.0 のレガシー サイトを持っています。そのフレームワークを 4.0 に変更しました。

したがって、私の提案は、そのフレームワークを変更してスモーク テストを実行することです。いくつかの問題が発生し、予想どおりに解決され、Response.Write などを処理するための主な関心事になる可能性があります。ASP.net は現在オープン ソースであるため、これらのコードを取得し、コア機能に最小限の変更を加えて作業を完了し、変更を失うことなくアップグレードするために、部分的な機能を可能な限り利用するか、このようなことを行います。

于 2016-11-21T21:38:58.013 に答える