htmlPurifier不与TinyMCE一起使用

时间:2012-12-12 06:59:17

标签: tinymce xss htmlpurifier

我使用htmlPurifier来阻止来自用户的XSS攻击,并且输入type =“text”字段的一切正常。但是,当我尝试清理tinyMCE textareas时,似乎htmlPurifier不起作用,例如:

简单输入文字字段

输入:

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

输出:清洁测试

tinyMCE TEXTAREA

输入:

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

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

我错过了什么吗?为什么htmlPurifier可以处理简单的输入文本而使用tinyMCE textarea呢?

Ps:Magic Quotes off Off

2 个答案:

答案 0 :(得分:6)

我想我发现了什么问题。

tinyMCE自动编码实体:

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

我尝试在tinyMCE上使用不同类型的entity_encoding,但它们似乎都没有按我的意愿工作,所以我使用PHP:html_entity_decode来解码tinyMCE文本区域,然后我使用htmlPurifier来清理数据,现在一切正常。

希望别人觉得这很有用。

答案 1 :(得分:0)

您需要调用tinymce.triggerSave(),以便在净化器工作之前将tinymce内容写回tinymce源元素(可以是textarea)。