2017-08-28 6 views
0

私はTinyMCEエディタを使用していて、テキスト領域の内容を正しく処理するhtmlspecialchars()を使用してコンテンツを処理していますが、WYSIWYGエディタを使用すると、もう少し混乱します。コンテンツ出力部分。HTMLエディタのコンテンツを正しくエスケープするにはどうすればいいですか?

私は出力にコンテンツをHTML清浄を使用して、私は、私はちょうど例えば行ってきた理解したものとしています:

$purifierConfig = HTMLPurifier_Config::createDefault(); 
$purifierConfig->set('HTML.Allowed', 'p'); 
$Purifier = new HTMLPurifier($purifierConfig); 
$input = $Purifier->purify($input); 

私は唯一のpタグでテストしてみたが、これは、私を意味していますTinyMCEが使用するすべてのものを通過させなければならないだろうか?または、WYSIWYGエディタの安全な出力でこの問題に取り組むより良い方法がありますか?

+1

HTML Purifierが使用する_default_ホワイトリストは非常に安全です。デフォルトよりも厳密にしたい場合を除き、 "HTML.Allowed"の設定をスキップできます。 :)(私はこのクラスが答えであるかどうかはわかりませんが、それはあなたの質問に少しは直面していますが、とにかく知りたいと思っていました) – pinkgothic

+0

ええ、私はちょうどHTMLを使いました。TinyMCEのすべての機能後でコンテンツが出力されたときに表示されます。情報をありがとう! – Erdss4

答えて

1

はい、すべての許可タグをカンマで区切って設定する必要があります。また、属性が括弧で囲んで許可されているものを指定することができます。

$purifierConfig = HTMLPurifier_Config::createDefault(); 
$purifierConfig->set('HTML.Allowed', 'p,a[href],b,i,strong,em'); 
$Purifier = new HTMLPurifier($purifierConfig); 
$input = $Purifier->purify($input); 

私はより良く理解するために推測し、printDefinitionは助けることができます。

関連する問題