[spip-dev] htmlpurifier à la place de safehtml

Salut les devs,

j’ai testé, c’est simple à remplacer et le patch est trivial.

Il suffit de mettre (via git par exemple) le contenu du répertoire ‘lib’ de html purifer dans plugins-dist/safehtml/lib/htmlpurifier

Puis de remplacer la fonction d’appel dans inc/safehtml.php

// Controle la presence de la lib HTMLPurifier et cree la fonction
// de transformation du texte qui l’exploite
// http://code.spip.net/@inc_safehtml_dist
function inc_safehtml_dist($t) {
static $process, $test;

if (!$test) {
$process = false;
if ($f = find_in_path(‘lib/htmlpurifier’)) {
// Evitons de passer par l’autoloader pour gagner en performance
// et permettre au cache opcode de fonctionner correctement
require_once $f.’/HTMLPurifier.path.php’;
require_once $f.’/HTMLPurifier.includes.php’;
$config = HTMLPurifier_Config::createDefault();
$config->set(‘Cache.SerializerPath’, realpath(_DIR_CACHE));
$process = new HTMLPurifier($config);
}
if ($process)
$test = 1; # ok
else
$test = -1; # se rabattre sur une fonction de securite basique
}

if ($test > 0) {
$t = $process->purify($t);
}
else
$t = inc_safehtml_old($t);

return $t;
}

(dans cet exemple j’avais gardé l’ancien appel à la librairie safehtml)

ça peut se faire via une extension dans un premier temps.

Si d’autres veulent tester, leur retour est le bienvenue.

Gilles