Php 如何在htmlpurifier中允许转换

Php 如何在htmlpurifier中允许转换,php,css,transform,htmlpurifier,Php,Css,Transform,Htmlpurifier,*********更新问题************** 因此,我尝试将自己的AttrDef实现到HTMLPurifier,但它没有“接受”,而且我也无法使用die()进行调试 以下是我所拥有的: 我在HTMLPurifier/AttrDef/CSS/目录中创建了Transform.php。到目前为止,唯一的内容是这样的(我现在只想把它挂起来,一旦我看到它在循环中,我将添加验证逻辑,从而可以测试它): 和库/HTMLPurifier.safe-includes.php require_once $

*********更新问题**************

因此,我尝试将自己的AttrDef实现到HTMLPurifier,但它没有“接受”,而且我也无法使用die()进行调试

以下是我所拥有的:

我在HTMLPurifier/AttrDef/CSS/目录中创建了Transform.php。到目前为止,唯一的内容是这样的(我现在只想把它挂起来,一旦我看到它在循环中,我将添加验证逻辑,从而可以测试它):

和库/HTMLPurifier.safe-includes.php

require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Transform.php';
(不确定上述两个include文件之间的区别,但所有AttrDef文件似乎都在这两个文件中,因此我也将我的文件添加到了这两个文件中)

然后,我尝试通过将其添加到library/HTMLPurifier/CSSDefinition.php来使用这个新定义:

    // transform
    $this->info['transform'] = new HTMLPurifier_AttrDef_CSS_Transform();
$this->info['transform'] = new HTMLPurifier_AttrDef_CSS_Color();
这就好像我所有的添加都没有完成过一样,我也无法通过在自己的文件中放入die()来调试它,什么也没有发生

因此,任何关于我哪里出错或如何调试的建议都是非常感谢的

***********加成*******

我还尝试了一个简单的旁路,将Color AttrDef应用于cssdeDefinition.php中的任何转换属性:

    // transform
    $this->info['transform'] = new HTMLPurifier_AttrDef_CSS_Transform();
$this->info['transform'] = new HTMLPurifier_AttrDef_CSS_Color();
我对原始的颜色定义进行了如下修改:

require 'HTMLPurifier/AttrDef/CSS/Transform.php';
//TODO: testing ways to bypass
    if (strpos($color, 'rotate(') !== false) {
        return $color;
    }

不工作。请告诉我缺少什么。

您需要定义自己的AttrDef,它知道如何解析和验证这些定义。由于rgb语法类似于矩阵,因此颜色应该是一个合适的模型。

您需要定义自己的AttrDef,它知道如何解析和验证这些定义。颜色应该是一个不错的模型,因为rgb语法类似于矩阵。

谢谢,我会研究一下。现在回想一下,我不确定我要处理的是matrix()值,还是我用来设置它的transform:rotate(45度)。我有办法的时候会回来的。。。可能将它添加到我已经拥有的你的回购协议中,或者再做一个。我按照你的建议做了,但似乎无法使用我自己的定义。。。如果有机会,请查看我的代码,您可能知道缺少了什么;maintenance/flush-definition-cache.php就可以了。谢谢,我会调查的。现在回想一下,我不确定我要处理的是matrix()值,还是我用来设置它的transform:rotate(45度)。我有办法的时候会回来的。。。可能将它添加到我已经拥有的你的回购协议中,或者再做一个。我按照你的建议做了,但似乎无法使用我自己的定义。。。如果有机会,请查看我的代码,您可能知道缺少了什么;maintenance/flush-definition-cache.php就可以了。