1

AntiXssライブラリはhtml5データ属性を取り除いているようですが、その理由を知っている人はいますか?

この入力を保持する必要があります:

<label class='ui-templatefield' data-field-name='P_Address3' data-field-type='special' contenteditable='false'>[P_Address3]</label>

anti xssライブラリ(v4.0)を使用する主な理由は、認識されないスタイル属性が解析されないようにするためです。これは可能ですか?

コード:

var result = Sanitizer.GetSafeHtml(html);

編集:

以下の入力により、スタイル属性全体が削除されます

入力:

var input = "<p style=\"width:50px;height:10px;alert('evilman')\"/> Not sure why is is null for some wierd reason!<br><p></p>";

出力:

var input = "<p style=\"\"/> Not sure why is is null for some wierd reason!<br><p></p>";

クライアント側で誰かが私のコードをいじくり回した場合、これは問題ありませんが、データ属性タグも機能する必要があります!

4

1 に答える 1

1

エンコーダーではなくサニタイザーを意味していると思います。HTML5 を理解していないか、属性を認識していないため、属性を取り除いているだけです。スタイルを介して XSS を行う方法があります。

セーフ リストをカスタマイズすることもできません。残念ながら、コード ベースではこれが許可されていません。多くの人がそれらを望んでいることは知っていますが、それをサポートするには完全に書き直す必要があります。

于 2011-03-18T14:49:42.463 に答える