1

これはHTMLPurifier に関連しています - 無視リストに追加します。ホワイトリストにいくつかのタグを追加しました。私は今このコードを持っています -

$config->set('HTML', 'AllowedElements', array("customreport", "column", "columnseq"));

$def = $config->getHTMLDefinition(true);
$def->addElement("customreport", 'Block', 'Flow', 'Common', array());
$def->addElement("column", 'Block', 'Inline', 'Common', array());
$def->addElement("columnseq", 'Inline', 'Empty', 'Common', array('path'=>'CDATA', 'label'=>'CDATA'));

問題は、単一引用符で囲まれた属性値を持つ html タグを送信すると、htmlpurifier がそれを二重引用符に変更することです。例えば

<columnseq path='test' label='tlabel' />

デモ サイト ( http://htmlpurifier.org/demo.php ) でも、テスト文字列を使用して発生します。

<A HREF='http://www.google.com/'>XSS</A>

この動作は上書きできますか?

4

1 に答える 1

3

二重引用符への属性引用の正規化は、HTML のメモリ内表現を構築するときに、値に対する属性名の連想配列しかなく、元の属性に関する情報がないという事実に起因する意図的な設計上の決定でした。引用スタイルでした。DOM スタイル パーサーを使用する場合、その情報を取得する方法もありません。

于 2010-07-26T16:55:12.547 に答える