Carnet Wiki

htmlpurifier : il reste une gêne

Version 4 — Février 2020 JLuc

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.' 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 Une protection contre les " on "  ? censure le onmouseover . Quelle wheel ?

Piste

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