Fortify 静的コード分析を使用してソフトウェアを分析しています。Fortify は、クロス サイト スクリプティングの脆弱性があると報告しています (反映されています)。
安全であることを顧客に納得してもらうために (監査が必要なため、誰もやりたがらないことです)、Fortify を喜ばせるために、その点について顧客と議論することができます。
ASP.NET のリクエストからフォーム パラメータを取得し、「手動で」(API を使用せずに) エスケープします (改行、\ 文字、引用符をエスケープし、スクリプト タグを削除します)。次に、それをブラウザにダンプします
output.Write("var enteredText = \"" + htmlEscape( Form.Params["enteredText"] ) +"\"");
私がしない限り、不平を言います
output.Write("var enteredText = \"" + htmlEscape( HttpUtility.HtmlEncode(Form.Params["enteredText"]) ) +"\"");
しかし、これは、Javascript var 'enteredText' を使用するには、Javascript を使用して HTML デコードする必要があることを意味します。この状況での <> とエンティティのエンコードとデコード全体は冗長ですよね?
どうすれば Fortify をなだめることができますか?