как разрешить преобразование в htmlpurifier

********* Обновленный вопрос **************

Поэтому я попытался реализовать свой собственный AttrDef для HTMLPurifier, но он не «берет», и я также не могу отладить с помощью die ().

Вот что у меня есть:

Я создал Transform.php в каталоге HTMLPurifier / AttrDef / CSS /. Пока единственное содержимое это (я только сейчас пытаюсь подключить его, я добавлю проверяющую логику, как только я увижу, что он находится в цикле и, следовательно, могу его проверить):

<?php

/**
* Validates Transform as defined by CSS.
*/
class HTMLPurifier_AttrDef_CSS_Transform extends HTMLPurifier_AttrDef
{
//basing this off of the color definition so the var is $color for now, may change it to $transform later
public function validate($color, $config, $context) {
return $color;
}
}

Я добавил свой файл в library / HTMLPurifier.includes.php следующим образом:

require 'HTMLPurifier/AttrDef/CSS/Transform.php';

и в библиотеку / HTMLPurifier.safe-includes.php

require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Transform.php';

(не уверен насчет разницы между этими двумя файлами включения, но все файлы AttrDef, похоже, были в обоих файлах, поэтому я также добавил свой файл в оба).

Затем я пытаюсь использовать это новое определение, добавив его в library / HTMLPurifier / CSSDefinition.php:

    // transform
$this->info['transform'] = new HTMLPurifier_AttrDef_CSS_Transform();

Как будто все мои добавления никогда не делались, и я не могу отладить их, поместив die () в свой собственный файл, ничего не происходит.

Так что любой совет о том, где я ошибся или как я могу отладить это очень ценится.

*********** дополнение *******

Я также попробовал простой обход, применив Color-AttrDef к любому свойству transform, в CSSDefinition.php:

$this->info['transform'] = new HTMLPurifier_AttrDef_CSS_Color();

И я взломал оригинальное определение цвета следующим образом:

//TODO: testing ways to bypass
if (strpos($color, 'rotate(') !== false) {
return $color;
}

Не работает. Пожалуйста, совет, что я пропускаю.

1

Решение

Вам нужно определить свой собственный AttrDef, который знает, как анализировать и проверять такие определения. Цвет должен служить достойной моделью, поскольку синтаксис rgb похож на матрицу.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]