Carnet Wiki

htmlpurifier : ultime gêne avant intégration au core

htmlpurifier est un plugin de sécurisation des contenus basé sur une librairie maintenue. Ça marche parfaitement et ça devrait être intégré dans le core pour remplacer safehtml qui est obsolète et n’est plus maintenu... mais il y a un problème : htmlpurifier bouffe les puces de changement de statut dans les listes du privé.

Cette page documente le problème et toute info pouvant contribuer au solutionnement

Code gérant le survol

<span class="puce_objet article" id="puce_statut_article40" dir="ltr" onmouseover="if (!this.puce_loaded) { this.puce_loaded = true; prepare_selec_statut(this, 'puce_statut_', 'article', '40', 'https://www.URLSITE.EXT/ecrire/?exec=puce_statut'); }"><!--?xml version='1.0' encoding='utf-8'?-->
....
  <a href="#" onclick="selec_statut('40', 'article', -29, jQuery('img',this).attr('src'), 'https://www.URLSITE.EXT/ecrire/?exec=puce_statut&action=instituer_objet&arg=article-40-publie&hash=a854985211556973UNHASHe2c7870e30c467');return false;" title="publié en ligne">
    <img src="UNCHEMINVERS/prive/themes/spip/images/puce-publier-8.png" alt="publié en ligne" width="8" height="8">
  </a>
...
</span>

Le problème avec ce code, c’est le "onclick" et le "onmouseover" : htmlpurifier ne supporte pas les "on".

Wheel bouffant le code html

Quelle wheel instaure la protection contre les "on" ?

Piste

-  g0uz : « Utiliser des attributs aria- à la place du onmouseover et une fonction JS loadée dans <head> qui s’en servirait en faisant une vérification dessus. »

JLuc - Mise à jour :18 février 2020 à 18h38min