Bonjour,
J'aimerai autoriser mes utilisateurs à saisir du code HTML, tout en limitant les risques d'exploitation de failles XSS.
Pour se faire, j'utilise html_special_chars($chaine, ENT_QUOTES, 'UTF-8') sur l'ensemble de la chaîne, puis j'essaie de retrouver les balises autorisées (une liste blanche quoi) pour décoder leurs symboles.
Mon soucis est que je n'arrive pas à trouver une expression régulière capturant à la fois les balises <p> mais aussi <p class="">, <p style="">, etc.
En effet, preg_replace('#<p[^>]*>#i', '<p>', $chaine); ne reconnait aucune balise <p>. Je pense que le soucis vient de cette partie là : [^>] où il n'apprécie pas l'usage de l'entité >...
Quelqu'un saurait-il comment résoudre le soucis?
Merci d'avance.
Partager