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. »