TinyMCEエディターから保存されたHTMLであるこのプロパティがあります:
<?php echo h($person['Person']['CurriculumVitae']); ?>
どうすればそれをWebに表示して、単純な文字列ではなくRAW Htmlとしてレンダリングできますか?
HTMLエンティティをエスケープh()
するのエイリアスである変数をでラップしないでください。htmlspecialchars()
<?php echo $person['Person']['CurriculumVitae']; ?>
h()を削除するだけで問題が解決する可能性がありますが、TinyMCEからhtmlを保持するフィールドがセキュリティホールになる可能性があるため、セキュリティホールが発生する可能性があります。
私はまったく同じ問題を抱えていて、tinymceHTMLの出力にhttp://htmlpurifier.org/を使用して解決しました。私はその周りにCakePHPプラグインも書いた。https://github.com/burzum/HtmlPurifier
HtmlPurifierを使用すると、許可されたHtml要素のセットとその属性を構成できます。したがって、たとえば、hrefは許可されているが、classは許可されていないことを指定できます。
ユーザーがTinyMceで実行できるものに一致するHtmlPurifierの構成を作成する必要があります。ユーザーが入力したマークアップから、許可されていないすべてのタグと属性が削除されます。