destroyedlolo Posté 24 Avril 2011 Partager Posté 24 Avril 2011 Bonjour, Dans une applie que je suis en train de construire ( "GeppettoRAS" sur SourceForge, en ligne d'ici quelques jours ), j'ai des formulaires ou l'utilisateur peu librement ajouter des tags HTML. Pour sécuriser ces formulaires, j'utilise le code suivant : strip_tags($txt, '<img><a> <b><u><i> <div><strong><em><strike><ol><ul><li><sup><small><code><blockquote><pre>'); Sauf que comment puis-je faire pour eviter que l'utilisateur n'ajoute des "onclick" et autres "onMouseOver" sur les tags qui restent autorises ? Mon appli utilise force Ajax, donc ca deviendrait une grosse faille de securite si je ne peux controler ce genre de JS Merci et A+ Laurent Lien vers le commentaire Partager sur d’autres sites More sharing options...
MarvinLeRouge Posté 25 Avril 2011 Partager Posté 25 Avril 2011 Salut, Je dirais : recherche et suppression de tout ce qui est "onQuelquechose" dans les tags, par expression régulière. Lien vers le commentaire Partager sur d’autres sites More sharing options...
destroyedlolo Posté 25 Avril 2011 Auteur Partager Posté 25 Avril 2011 Merci Marvin, mais c'est là ou j'ai besoin d'aide car je ne suis pas assez calé en expression regulieres et mes essais font que je n'arrive pas a extraire uniquement les attributs des tags. Par exemple, un phrase genre "ils ont dit" est elle aussi changee ... ce qui evidement n'aide pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
MarvinLeRouge Posté 26 Avril 2011 Partager Posté 26 Avril 2011 Aouch faudrait que je teste la regexp et là j'ai pas le temps. Il faut que tu définisses bien ce que tu recherches, ça doit être un truc du style "<([a-zA-Z]+)( [^>^])>". Là, si tu fais sauter la 2ème parenthèse, ça te vire tout sauf la balise (ou ça doit ressembler à ça). Lien vers le commentaire Partager sur d’autres sites More sharing options...
destroyedlolo Posté 28 Avril 2011 Auteur Partager Posté 28 Avril 2011 Aouch faudrait que je teste la regexp et là j'ai pas le temps. Il faut que tu définisses bien ce que tu recherches, ça doit être un truc du style "<([a-zA-Z]+)( [^>^])>". Jusque la, pas de probleme ... Là, si tu fais sauter la 2ème parenthèse, ça te vire tout sauf la balise (ou ça doit ressembler à ça). mais comment je fais ca ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
MarvinLeRouge Posté 29 Avril 2011 Partager Posté 29 Avril 2011 Tu utilises preg_replace, et tu "oublies" le contenu de la 2ème parenthèse quand tu remplaces, ça donnerait qqch du style (pas testé du tout) : $pattern = "<([a-zA-Z]+)( [^>^])>";$replacement = "<$1>";echo preg_replace($pattern, $replacement, $string); Maintenant, tu commences un truc très rigolo : le test de ta regexp Lien vers le commentaire Partager sur d’autres sites More sharing options...
destroyedlolo Posté 29 Avril 2011 Auteur Partager Posté 29 Avril 2011 Ok, merci, je vais essayer ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant