0

Veracode を実行すると、 の行を指す一連のエラーが生成されましたInnerHtml

たとえば、これらの行の 1 つを次に示します。

objUL.InnerHtml += "<tr><td></td><td  class=\"libraryEdit\">" + HttpUtility.HtmlEncode(dtitems.Rows[currentitem]["content"].ToString()) + "</td>";

HTMLサーバーコントロールを使用せずに修正する代替手段は何ですか?

4

2 に答える 2

0

ASP.NET Webforms アプリケーションでこの問題に直面しました。これに対する修正は比較的簡単です。

NuGet パッケージ マネージャーから HtmlSanitizationLibrary をインストールし、アプリケーションでこれを参照します。コード ビハインドでは、以下の方法でサニタイザー クラスを使用してください。

たとえば、現在のコードが次のようになっている場合、

YourHtmlElement.InnerHtml = "Your HTML content" ;

次に、これを次のように置き換えます。

string unsafeHtml = "Your HTML content"; 
YourHtmlElement.InnerHtml = Sanitizer.GetSafeHtml(unsafeHtml);

この修正により、Veracode の脆弱性が解消され、文字列が HTML としてレンダリングされるようになります。コードビハインドで文字列をエンコードすると、レンダリングが開始される前にエンコードされるため、RAW HTML ではなく「エンコードされていない文字列」としてレンダリングされます。

于 2016-12-19T10:03:04.197 に答える
0

あなたは正確に何をしようとしていて、ベラコードは正確に何を言っていますか?

ほとんどの場合、InnerHtml に渡されたデータが信頼されておらず、悪意のある JavaScript が含まれている可能性がある場合、任意のコード インジェクションの脆弱性が発生する可能性があると訴えています。

createElementJavaScript関数を使用して手動で DOM 要素を構築し、各 DOM 要素を手動で構築する場合、ツールはエラーを表示しない場合があります。

于 2014-04-24T16:48:27.800 に答える