Project

General

Profile

Anomalie #2855

mauvais traitement du signe < par textwheel

Added by denisb - about 7 years ago. Updated about 5 years ago.

Status:
Fermé
Priority:
Bas
Assignee:
Target version:
Start date:
09/14/2012
Due date:
% Done:

0%

Resolution:
Navigateur:

Description

sur SPIP 3.1.0-dev SVN [19912] et malgré http://zone.spip.org/trac/spip-zone/changeset/65851/

  • la saisie :
    a<b
    donne (saut de ligne compris) :
    <p>ap&gt;
    
    </p>
  • la saisie :
    {a<b}
    donne :
    <p><i>ai&gt;</i></p>
  • la saisie :
    {{a<b}}
    donne :
    <p><strong>astrong&gt;</strong></p>
  • la saisie :
    {{{a<b}}}
    donne (non fermeture de tag comprise) :
    <h3 class="spip">ah3&gt;
  • la saisie :
    {0 < a < 1} et {a > 5}
    donne (là, c'est bon !) :
    <p><i>0 &lt; a &lt; 1</i> et <i>a &gt; 5</i></p>
  • la saisie :
    {0 < a < 1.0} et {a > 5}
    donne (saut de ligne compris) :
    <p><i>0 &lt; a</i></p>
    <p><span class="ressource spip_in">&lt;<a target="blank" href="http://localhost:8888/spip/_spip_dev_mysql/IMG/" class="spip_url spip_out">../IMG//</a>&gt;</span></p>
    <p> 5</p>

History

#1 Updated by denisb - almost 6 years ago

  • Status changed from Nouveau to En cours
  • Target version changed from 3.1 to 3.0

je reviens là-dessus pour la version 3.0

en base :

{0 < a < 1.0} et {a > 5}

affiché :
<p><i>0 &lt; a</i></p><p><i><span class="ressource spip_in">&lt;<a href="IMG//" class="spip_url spip_out">IMG//</a>&gt;</span></i></p><p><i> 5</i></p>

visible ici : http://denisb.grml.eu/spip.php?article6

#2 Updated by Fil _ almost 6 years ago

hummmmm c'est le proto de raccourci <ressource> qui chope les < … > et les bouffe. Il faudrait peut-être être plus strict, exiger qu'il n'y ait pas un blanc (espace ou saut de ligne) après le premier < ?

#3 Updated by denisb - almost 6 years ago

hélas...

sans les espaces :

<p><i>0<a< p="">
</a<></i></p><p><i><span class="ressource">&lt;1.0}&gt;</span></i></p><i>
</i><p><i>5</i></p>

http://denisb.grml.eu/spip.php?article6

#4 Updated by denisb - almost 6 years ago

il y a effectivement du mieux avec (dans textwheel) :

define('_EXTRAIRE_RESSOURCES', ',' . '<"?(https?://|[^\s][\w -]+\.[\w -]+)[^<]*>'.',UimsS');

désormais l'affichage de

{0 < a < 1.0} et {a > 5}

est bien
<p><i>0 &lt; a &lt; 1.0</i> et <i>a &gt; 5</i></p>

#5 Updated by Fil _ almost 6 years ago

oui je parlais en effet du regexp de textwheel, mais il risque quand même de se déclencher si on veut saisir sans espaces
```x<a et b>y```

mais ce cas-là est sans doute indémerdable de toutes façons, puisque ```<a``` est "plutôt" un tag :)

Autrement dit, ton patch me paraît bien.

#6 Updated by denisb - almost 6 years ago

ha mais de toute façon sans espace après < c'est mort. on retombe dans les premiers exemples donnés plus haut dans le ticket.

là ce n'est que pour < ressource > (restent tous les autres cas...)

#7 Updated by guytarr ° almost 6 years ago

  • Assignee set to Fil _

#8 Updated by cedric - about 5 years ago

J'ai créé un test unitaire qui reprends les exemples de ce ticket
http://zone.spip.org/trac/spip-zone/changeset/84110
en fait tout est presque bon. Il ne manque que la conversion des < et > en < et >, mais tout le reste du markup est OK.

#9 Updated by cedric - about 5 years ago

  • Priority changed from Urgent to Bas

Coquille dans le test, corrigée par http://zone.spip.org/trac/spip-zone/changeset/84111
Si on dit que les < doivent être échappés dans la mesure du possible, le patch suivant semble faire le boulot sans casser aucun autre test.
Mais est-ce que ça en vaut vraiment la peine ?

Index: wheels/spip/spip.yaml
===================================================================
--- wheels/spip/spip.yaml       (revision 83994)
+++ wheels/spip/spip.yaml       (working copy)
@@ -183,3 +183,9 @@
   match: ["\x1\x1", "\x1\x2", "\x1\x3", "\x1\x4"]
   replace: ['{', '}', '_', '-']
   type: str
+
+echappe-chevron-ouvrant:
+  #if_str: "<script" 
+  type: preg
+  match: "/<([^><]*)(?=<|$)/Uims" 
+  replace: "&lt;$1" 

#10 Updated by cedric - about 5 years ago

  • Status changed from En cours to Fermé

Donc, oui il faut echapper le < en lt; quand on peut car sinon le rendu par le navigateur est tout moisi.
Corrigé par http://zone.spip.org/trac/spip-zone/changeset/84152 qui est plus prudent que le patch ci-dessus

Also available in: Atom PDF