【问题标题】:Allow custom url's in src for image in htmlpurifier允许 src 中的自定义 url 用于 htmlpurifier 中的图像
【发布时间】:2012-07-10 13:02:45
【问题描述】:

我的 HTMLPurifier 设置有问题。

在我的例子中,我试图净化的 HTML 包含 img 标签。为此,我添加了:

$config->set('HTML.Allowed', 'p[align|style],strong,a[href|title|mailto],em,table[class|width|cellpadding],td,tr,h3 ,h4,h5,hr,br,u,ul,ol,li,img[src|width|height|alt|class],span[class],strike,sup,sub');

到我的配置。

但问题是我的图像的 src 值以 %%abc%% %%xyz%%。 我稍后在我的代码中使用这些字符串来识别图像 url 并做一些事情。

但是 HTMLPurifier 不允许这些类型的 url。

我尝试添加自定义 URI 架构,但无法使其正常工作。 任何帮助表示赞赏。

【问题讨论】:

    标签: htmlpurifier


    【解决方案1】:

    您应该能够按如下方式覆盖属性定义/验证:

    class ParameterURIDef extends \HTMLPurifier_AttrDef_URI
    {
        public function validate($uri, $config, $context)
        {
            if(preg_match('/^\{[a-zA-Z0-9]+\}$/', $uri)) {
                return true;
            }
    
            return parent::validate($uri, $config, $context);
        }
    }
    
     $config = HTMLPurifier_Config::createDefault();
     $def =   $config->getHTMLDefinition(true);
     $def->addAttribute('img', 'src', new ParameterURIDef());
    

    【讨论】:

      【解决方案2】:

      嗯...是的,您可能有点不走运,除非您将自定义值正则表达式并在其位置留下唯一标识符,然后在最后将它们放回原处。百分号特别糟糕,因为它们通常在 URL 中具有不同的含义。

      【讨论】:

        猜你喜欢
        • 2011-04-19
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-10
        • 1970-01-01
        相关资源
        最近更新 更多