ASP.Net C#+ jQueryajaxWebサイトプロジェクトに取り組んでいます。私はxss攻撃を防ごうとしていますが、以下は完全なアプローチではないことを知っていますが、これは少なくとも私がすべきことです-ユーザーからの無料の文字列入力を受け入れるときにHtmlEncodeを使用するため)。そして、私は本当に私が正しいことをしているのかどうかを親切にチェックしてくれる人です。
たとえば、ページコントロールの1つが「説明」テキストボックスであり、ユーザーが製品の説明に使用される「無料」の文字列を入力できるシナリオがあるとします。xssが入力を攻撃するのを防ぐために、サーバー側のページメソッドで、を使用して「説明」テキストをラップしました。HtmlUtility.HtmlEncode()
これにより、文字列はデータベースに入る前に純粋なテキストとして解釈されます。つまり、<script>
になり>script<
ます。
次の部分は私が疑っているものです-それをユーザーに返す前にhtmlでエンコードされたテキストを処理する方法は?
ユーザーが入力された説明テキストを表示したい場合、データベースから取得されたWebサイトがそれを印刷します。
ユーザーがそれらの奇妙な文字を見ないように、説明に対してhtmlデコードを実行することは論理的><
ですか?そもそもHtmlEncodeを使用する目的を無効にするのでしょうか。はいの場合、これはテキストをデコードしてユーザーに出力するための正しいjQuery行ですか?
$("#txtDescription").val($(this).html(obj.Description).text();
本当にありがとう