RECHERCHE

Plan du site

BOURSE

 

RUBRIQUES

 
 PRATIQUE CLIENTS WEB 
RegExp : nettoyer le HTML d'un formulaire
 
Enlevez tous les balises indésirables coté client, avant d'envoyer un formulaire vers le serveur. (18/10/2004)
  Forum

Réagissez dans les forums de JDN Développeurs

Nous avions déjà publié un article de Chris Shiflett expliquant comment se protéger des attaques XSS et CSRF avec PHP. Nous vous proposons ici une utilisation des expressions régulières pour plus simplement filtrer certaines balises des formulaires HTML que vous mettez à disposition de vos visiteurs.

Ce script cherche à reconnaître une balise (ouverte ou fermée, peu importe ses attributs) et en cas de reconnaissance, la remplace par une chaîne vide, c'est à dire qu'en pratique elle efface la balise.

Pour parcourir la chaîne, nous avons recours à un chemin détourné qui consiste à compter le nombre de caractères dans la chaîne et à augmenter à chaque passage la valeur de l'itération.

Exemple :

 



Le code
<script>
function regclean() {
  expr = /<\/?(table|tr|td|script|b|i|em|strong|font|script)[^>]*>/;
  if (document.getElementById) {
    sale = document.getElementById("sale").value;
    longu = sale.length;
    i=0;
    transition = sale.replace(expr, "")
    while (i<longu) {
      transition = transition.replace(expr, "");
      document.getElementById("propre").value = transition;
      i=i+5;
      }
    }
  }
</script>

<form method="post" action="">
  <p>
    <textarea id="sale" name="sale" cols="50" rows="6"><table><b>aaa</b></table></textarea>
  </p>
  <p>
    <input type="button" name="Submit" value="Nettoyer" onclick="regclean();">
  </p>
  <p>
    <textarea id="propre" name="propre" cols="50" rows="6"></textarea>
  </p>
</form>

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page
 
 



Votre avis sur cette publicité