J'avais sytématiquement un problème agaçant si je voulais afficher un texte (#TEXTE) qui contenait une balise spip du type : <img1|left> en faisant en php un :
echo '#TEXTE';
Avec une erreur de script à la clé.
Ceci était normal : en html le code généré étant de ce type:
> il y a un filtre spécialisé pour ça :
>> echo '#TEXTE';
> à remplacer par
> echo '[(#TEXTE|texte_script)]';
Il m'a semblé par contre que c'était pas nécessaire pour les #titre
mais ça m'étonne tellement que ... y aurait il un traitement spécial ?
C'est indispensable pour tous les champs qu'on passe en php (hormis les
champs numériques comme #ID_RUBRIQUE évidemment). Car ils peuvent tous avoir
une apostrophe ' s'ils contiennent (par exemple) la séquence <html>'</html>.
Il m'a semblé par contre que c'était pas nécessaire pour les #titre
mais ça m'étonne tellement que ... y aurait il un traitement spécial ?
C'est indispensable pour tous les champs qu'on passe en php (hormis les
champs numériques comme #ID_RUBRIQUE évidemment). Car ils peuvent tous avoir
une apostrophe ' s'ils contiennent (par exemple) la séquence <html>'</html>.
ben oui... c'est bien ce qu'il me semble
pourtant sur un squelette j'ai inexplicablement un
$titre_prec = '[(#TITRE|supprimer_numero)]';
suivi de
echo $titre_prec;
qui marche très bien même si il y a des quotes ou apostrophes ou guillemets
dans le titre... en effet, à l'examen, les ' sont transformés en ’
(c'est pas moi le responsable !)
d'où pani probleme.
Est-ce que ce filtre ne pourrait pas être avantageusement remplacé par Ces modifs ?
Non car c'est générique. Recopie précisément ce qui suit dans ton champ texte :
Hop.<html>'; print_r($_SERVER); echo '</html>. et voilà...
et tu verras que la commande php print_r($_SERVER) est directement exécutée
dans l'espace public.
Evidemment un attaquant méchant mettrait plutôt une commande php méchante
(du genre qui efface toute ta base de données).
ça je comprend bien, mais y'a t'il une objection à modifier les bout de code comme je l'ai fait ?
C'est à dire à unifier la syntaxe ce qui éviterait la possibilité des codes malicieux dans le corps du texte qui risque de se produire avec la balise et le filtre cité plus haut.
ça je comprend bien, mais y'a t'il une objection à modifier les bout de
code comme je l'ai fait ?
C'est à dire à unifier la syntaxe ce qui éviterait la possibilité des
codes malicieux dans le corps du texte qui risque de se produire avec la
balise et le filtre cité plus haut.
Non ça n'a rien à voir : le fait que la balise <img> provoque un plantage
dans ton cas permet de montrer que ton squelette est insécure (autrement dit
"troué"). EN bonne logique, ça devrait t'encourager à le réparer, pas à
éviter le plantage révélateur ?