18-01-2011, 03:54 PM
(17-01-2011, 08:12 PM)Catar4x a écrit : Le code actuel est :
$chaine = preg_replace('/\[img\](.+?)\[\/img\]/', '<img src="$1" alt="" title="" />', $chaine);
/* Détecter URL et les transformer en lien */
$chaine = eregi_replace("(http|mailto|news|ftp|https)://(([-éa-z0-9\/\.\?_=#@:~])*)",
"<a href=\"\\1://\\2\">\\1://\\2</a>", $chaine);
Je ne sais pas d'où vient ta chaine de caractère d'origine, mais si c'est saisie par un utilisateur attention, c'est une très grosse faille de sécurité... en effet, dans la chaine, l'utilisateur peut alors mettre n'importe quoi qui sera envoyé tel quel aux autres utilisateurs
par exemple :
[img]mon/image.png" /><script>window.open('mon site porno')</script><img src="mon image[/img]
Il faut toujours filtrer les saisies utilisateur pour ne bien récupéré qu'une URL d'image et pas du code pourri dedans...
(Règle numéro 1 de la sécurité : Never Trust User Data / Ne jamais faire confiance aux données saisies par un utilisateur)