`#CHEMIN_IMAGE` interdit les scripts par défaut, ce qui est parfois ennuyant
Le cas que l’on vient de me présenter et la présence dans un titre d’article du mot "data:" (ou "data :" peut importe), texte étant une traduction d’un autre article. La liste des traductions d’un article (prive/liste/articles-trad.html) appelle à un moment (en simplifiant) :
[(#CHEMIN_IMAGE{'fichier.png'}|balise_img{#TITRE})]
Le filtre balise_img
ajoute le titre échappé dans l’attribut alt
de la balise <img>
,
mais comme #CHEMIN_IMAGE
interdit les scripts par défaut, le contenu traverse echappe_js()
(de textwheel)
qui voit cela comme une tentative de XSS (balise img + data:), et échappe le contenu.
Sur la vue de l’article dans la liste des traductions, cela crée donc un affichage disgracieux, pour un échappement qui est un faux positif.
Si on remplace par #CHEMIN
, le contenu n’est plus échappé, car cette balise indique ne pas nécessiter d’interdire les scripts :
[(#CHEMIN{'fichier.png'}|balise_img{#TITRE})]
-
#CHEMIN_IMAGE
est arrivé il y a 11 ans : 0e37e92b - interdire_scripts à false sur
#CHEMIN
est arrivé il y a 6 ans : 957a7e5a
Il n’y a a priori pas de raison que CHEMIN_IMAGE soit différent de CHEMIN sur ce comportement ?
Mettre également $p->interdire_scripts=false;
sur #CHEMIN_IMAGE
résout ce problème