我使用htmlPurifier来防止来自用户的XSS攻击,在输入type="text“字段上一切正常。但是,当我试图清理tinyMCE文本区域时,htmlPurifier似乎不起作用,例如:
简单输入文本字段
投入:
<script>alert("XSS")</script>Cleaning Test输出:清洁测试
tinyMCE TEXTAREA
投入:
<script>alert("XSS")</script>输出:<script>alert("XSS")</script>
我错过了什么吗?为什么htmlPurifier在一个简单的输入文本上工作,而tinyMCE文本区域却不工作?
Ps.:魔法引号取消了。
发布于 2012-12-12 20:08:32
我想我找到了问题所在。
tinyMCE自动对以下实体进行编码:
< into <
> into >
" into "
& into &我尝试在tinyMCE上使用不同类型的tinyMCE,但它们似乎都不像我想要的那样工作,所以我使用PHP: html_entity_decode来解码tinyMCE文本区域,然后使用htmlPurifier对数据进行净化,现在一切正常。
希望别人能找到有用的东西。
发布于 2012-12-12 09:20:50
您需要调用tinymce.triggerSave(),以便将tinymce内容写回tinymce源元素(可以是文本区域),然后净化器才能工作。
https://stackoverflow.com/questions/13834456
复制相似问题