0

Web ページに表示されるコンテンツを HtmlEncode するために、Microsoft の AntiXSS ライブラリを使用しています。

問題は、必要以上にエンコードすることです。たとえば、コロン「:」をエンコードします。

HtmlEncode への方法はありますが、特定の文字はありませんか?

たとえば、「RE: メールの件名」のような文字列がある場合、AntiXSS ライブラリを使用してその文字列をエンコードすることはできますが、「RE: メールの件名」として表示されません。「:」を表示したいが、出力をエンコードしたい。

更新: 問題は、私が Razor を使用していて、「@」が既に出力をエンコードしていたことです。したがって、"@" と AntiXSS Html.Encode 呼び出しの両方を使用することで、二重エンコードを行っていました。

4

1 に答える 1

1

コメントが示すように画面にエンコーディング結果が表示されている場合は、二重エンコーディングです。: はコロンで、それが AntiXSS の出力になりますが、その後に & が & にエンコードされます。

これを行っていることは、使用しているものによって異なります。WebForms を使用している場合、多数のコントロールがデフォルトで Text およびその他のプロパティをエンコードし、これを停止するのはコントロールによって異なります。MVC を使用している場合、 <%: は、出力ストリームに追加する前に、渡す内容のエンコードを実行します。MVC3 を使用している場合は、デフォルトのエンコーダー ( AntiXSS beta 4.1を使用するか、ベータ版を使用したくない場合は独自のエンコーダーを使用する) を置き換えるか、 HtmlStringを出力して、既にエンコードされている文字列を出力していることを MVC に伝えることができます。 .

.NET 4.5では、AntiXSS のコア部分が組み込まれ、構成スイッチを介して構成可能になります。

于 2011-10-16T11:03:50.757 に答える