3

2 つの質問:

私はドキュメントとSOの投稿を読んでいます..長い道のりを行う方法を知っています(すべての要素と属性を自分で定義します)が、やりたいことは、デフォルトのホワイトリストに2つまたは3つの属性を追加することだけです..HTML.AllowedElementsおよび/またはなどの要素/属性を常に見つけて追加する必要はありませんHTML.AllowedAttributes

具体的には、(内部の信頼できるユーザーの場合) javascript 属性 (tinymce からの入力) を許可する必要があります。質問 #1.) 許可された要素/属性のデフォルト セット全体を効果的に消去することなく (HTMLpurifier が許可するものに) 属性を追加する方法はありますHTML.AllowedElementsHTML.AllowedAttributes?

私が今必要としているもの(javascript 属性) については、このスレッドで見たときに興奮しました:

HTML Purifier 設定のホワイトリスト フォーム

...ここで、Edward Z. Yang は、「... [ $config->set('HTML.Trusted', true);] は JavaScript を許可します」と述べています。

...しかし、これを設定した後でも: $config->set('HTML.Trusted', true);、HTMLpurifier 4.4.0 は、入力onclick="dostuff();"属性などをまだ削除しています。なんで?質問 #2.) JavaScript 属性だけを許可リストに追加する簡単な方法はありますか?

4

2 に答える 2

1
  1. HTML Purifier がその属性を認識していないため、onclick を失っています。また、%HTML.Trusted をオンにしたときに HTML Purifier がすべてを通過させた場合は、HTML Purifier をまったく使用しない方がよいでしょう。

  2. HTML Purifier には、まさにこの場合のための属性コレクションがあります。「Common」はおそらくそれらを挿入するのに適したものです。

しかし、なぜ?%HTML.Trusted の実際の名前は、%HTML.UnsafeMakeMyApplicationVulnerable である必要があります。

于 2012-05-02T14:55:11.330 に答える