3

ユーザーからの XSS 攻撃を防ぐために htmlPurifier を使用していますが、input type="text" フィールドではすべて正常に動作します。しかし、tinyMCE テキストエリアをきれいにしようとすると、htmlPurifier が機能しないように見えます。例:

単純な入力テキスト フィールド

入力。:

<script>alert("XSS")</script>Cleaning Test

出力: 洗浄テスト

tinyMCE テキストエリア

入力。:

<script>alert("XSS")</script>

出力:<script>alert("XSS")</script>

私は何か見落としてますか ?htmlPurifier が単純な入力テキストで機能し、tinyMCE テキストエリアでは機能しないのはなぜですか?

追伸: 魔法の名言はオフです

4

2 に答える 2

7

私は何が間違っていたのかを見つけたと思います。

tinyMCE は、次のようなエンティティを自動的にエンコードします。

< into &lt;
> into &gt;
" into &quot;
& into &amp;

tinyMCE でさまざまなタイプの entity_encoding を使用しようとしましたが、どれも思い通りに動作しないようです。そのため、PHP: html_entity_decode を使用して tinyMCE テキスト領域をデコードし、htmlPurifier を使用してデータをサニタイズし、すべて正常に動作するようになりました。

他の誰かがこれが役に立つことを願っています。

于 2012-12-12T20:08:32.977 に答える