私は、ユーザーがテキストを入力できるASP.NET MVCアプリケーションにテキストエリアを持っています。ユーザーにテキストを表示すると、私はHtml.Encode
を使用して悪質な入力を防止します。問題は、ユーザーがスペイン語で入力でき、año
と入力してEncode
と入力するとaño
に変換されるということです。どうすればこれを防ぐことができますか?セキュリティのためにHTML入力をエンコードする場合、Ñやñなどの国際文字のエンコードを避けるにはどうすればよいですか?
EDIT:最初はこれを発生させる
<b>a1 'a1' Camaño</b>
:その後、私はこれを持って、この時間は、ディスプレイが正しいページで
<a href="a1-'a1'-Cama&#241;o?sort=estadisticas#241;o">a1 'a1' Cama&#241;o</a>
:生成されたHTMLでは、私はこれを見ます方法:
<%= Html.RouteLink(Html.Encode(Model.NAME), ...... %>
と、このような二:
<%= Html.Encode(Model.NAME)%>
私の推測では、問題はHtml.RouteLink
であるということです。
国際的な文字をエンコードしているという苦情や、入力した文字ではなくエンコードされた文字が表示されるという苦情はありますか?それが後者の場合、「2度の誤ってエンコーディングする」という答えは正しいです。そうでなければ、私たちに知らせてください。 – Eddie