Expressions regulieres dans recherche

Salut,

on rencontre un somprtement bizarre lors ce qu'on envoie le contenu (vide) d'un formulaire de recherche à une boucle de recherche qui contient une expression reguliere. Voici le message d'erreur:

<BOUCLE_artikelsuche>(articles)
MySQL-Fehler
RAND() AS hasard, articles.id_article, articles.titre, articles.date_redac, articles.chapo, articles.descriptif, articles.texte, articles.id_rubrique, articles.lang FROM spip_articles AS `articles` WHERE (articles.id_rubrique = '31') AND (articles.texte REGEXP '') AND ((articles.id_rubrique NOT IN (81,84))) AND (articles.statut = "publie") ORDER BY articles.date_redac
Got error 'empty (sub)expression' from regexp
</BOUCLE_artikelsuche>

Le code de la boucle de recherche est le suivant:

<BOUCLE_artikelsuche(ARTICLES){id_rubrique=31}{texte==#RECHERCHE}{par #ENV{tri}}{pagination}>
#TITRE etc. <br />
</BOUCLE_artikelsuche>

Comme vous pouvez constater on compare le contenu de #RECHERCHE au texte afin de localiser l'existence de phrases (string) entieres. Dès qu'on remplit le formulaire ca marche bien. Seulement quand on laisse le champ d'entrée completement vide l'erreur se produit.

Voici l'URL de la page qui contient le formulaire de recherche:
http://www.iris-media.info/spip.php?article2326

Deux choses m'inquiètent:
- Dans une premiere version de la boucle il n'y a vait pas ce problème.
- Puisqu'on peut utiliser des expressions regulières dans la recherche je me demande, s'il n'est pas possible d'abuser de la boucle pour provoquer ces fameuses "buffer overflow" et "sql injections".

Vous avez une idée?

Merci, klaus++

klaus++ wrote:

<BOUCLE_artikelsuche(ARTICLES){id_rubrique=31}{texte==#RECHERCHE}{par #ENV{tri}}{pagination}>
#TITRE etc. <br />
</BOUCLE_artikelsuche>

<BOUCLE_artikelsuche(ARTICLES)
     {id_rubrique=31}
     {texte==#RECHERCHE|sinon{kzzk}}
     {par #ENV{tri}}
     {pagination}
>
#TITRE etc. <br />
</BOUCLE_artikelsuche>

klaus++ wrote:

- Puisqu'on peut utiliser des expressions regulières dans la recherche je me demande, s'il n'est pas possible d'abuser de la boucle pour provoquer ces fameuses "buffer overflow" et "sql injections".

il faut nettoyer #RECHERCHE de tout ce qui peut poser problème :
caractère | en début ou en fin d'expression,...

super, merci !
klaus++

denisb a écrit :

klaus++ wrote:

- Puisqu'on peut utiliser des expressions regulières dans la recherche je me demande, s'il n'est pas possible d'abuser de la boucle pour provoquer ces fameuses "buffer overflow" et "sql injections".

il faut nettoyer #RECHERCHE de tout ce qui peut poser problème :
caractère | en début ou en fin d'expression,...

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP