HTMLPurifier打破图像

时间:2010-10-09 05:22:38

标签: php xss ckeditor htmlpurifier

我正在尝试从WYSIWYG(CK编辑器)的用户输入上运行HTMLPurifier,图像正在破碎。

未过滤的输入:

<img alt="laugh" src="/lib/ckeditor/plugins/smiley/images/teeth_smile.gif" title="laugh">

使用默认设置运行净化器后:

<img alt="&quot;laugh&quot;" src="%5C" title="&quot;laugh&quot;">

我尝试过更改配置设置;但是我从未保留过src。有什么想法吗?

4 个答案:

答案 0 :(得分:4)

我怀疑magic_quotes可能是一个原因..?

你也试过$config->set('Core.RemoveInvalidImg',true);。你使用的是哪个版本? (尝试更旧或更新)

答案 1 :(得分:3)

有同样的问题。 这修好了

if (get_magic_quotes_gpc()) {
function stripslashes_gpc(&$value)
{
    $value = stripslashes($value);
}
array_walk_recursive($_GET, 'stripslashes_gpc');
array_walk_recursive($_POST, 'stripslashes_gpc');
array_walk_recursive($_COOKIE, 'stripslashes_gpc');
array_walk_recursive($_REQUEST, 'stripslashes_gpc');

}

答案 2 :(得分:1)

我不知道htmlpurifier是什么,但是你在那里使用的img标签在运行它之前是完全合法的(除了它是未关闭的)。在你运行之后,它会双倍地逃避事情,而这似乎就像垃圾一样。 %5C是反斜杠的url代码。似乎它试图用反斜杠逃避正斜杠然后它窒息。这个节目是什么?我可以推荐HTML Tidy吗?

答案 3 :(得分:1)

回到一个旧帖子,我认为这个小片段可能会帮助其他人在这里结束......

我修复了我的代码中的大量异常活动,通过将此行添加到我的.htaccess文件中来转义字符

php_flag magic_quotes_gpc Off

来自PHP文档“从PHP 5.3.0开始,此功能已被弃用,自PHP 5.4.0起已被删除”http://www.php.net/manual/en/security.magicquotes.what.php

此外,还有其他方法可以禁用魔术引号 http://www.php.net/manual/en/security.magicquotes.disabling.php