A mon avis le bogue est surtout à corriger dans la fonction
quoteattr() du module Python "sax.saxutils".

Car ***même*** en HTML ou SGML (au lieu de XML ou XHTML) il faudrait
systématiquement recoder un "&" présent dans une valeur qu'on veut
encapsuler dans un attribut d'élément HTML (ou XML). Tout parseur HTML
ou SGML reconnait "&" automatiquement (sans avoir besoin de
définir l'entité), mais ***tolère*** (par compatibilité ascendante
avec les très vieux navigateurs HTML, d'avant même HTML4) des valeurs
contenant des entités mal codées (dans ce cas un parseur HTML a un
"fallback" lui permettant de réinterpréter la valeur donnée sans faire
le décodage des entités, mais PAS un parseur XML qui s'y refuse, car
c'est un trou de sécurité).

Le code d'Osmose visiblement l'oublie quand il génère aussi d'autres
URLs "en dur" à d'autres endroits de la page HTML du frontend (mais ce
frontend est codé pour générer du HTML, pas du XHTML, ce qui autorise
le "fallback" pourtant pas recommandé du tout et dangereux).

>> Mon dépôt osmose sur gitorious n'est pas vraiment une référence.
>> Regardes plutôt la branche dev de http://gitorious.org/osmose pour la
>> version de développement.

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à