我正在尝试从WYSIWYG(CK编辑器)的用户输入上运行HTMLPurifier,图像正在破碎。
未过滤的输入:
<img alt="laugh" src="/lib/ckeditor/plugins/smiley/images/teeth_smile.gif" title="laugh">
使用默认设置运行净化器后:
<img alt=""laugh"" src="%5C" title=""laugh"">
我尝试过更改配置设置;但是我从未保留过src。有什么想法吗?
答案 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