Jeffrey Cross
Jeffrey Cross

Arrêtez les attaques XSS avec SafeHTML

Si vous autorisez le contenu ajouté par l'utilisateur sur votre site, vous rencontrez le problème de traiter le code HTML fourni par l'utilisateur de manière sécurisée. Le moyen le plus sûr de gérer ces choses consiste bien entendu à effacer ou à échapper tout le code HTML des champs de saisie de l'utilisateur. Malheureusement, il serait bien d’autoriser un grand sous-ensemble d’entrée HTML, mais de bloquer tout élément potentiellement dangereux.

SafeHTML est un désinfectant d'entrée utilisateur PHP léger qui fait exactement cela. Il suffit d’exécuter un champ de saisie à travers le filtre SafeHTML et tout texte javascript, balise objet ou balise de mise en page sera supprimé du texte fourni. Il permet également de corriger tout code mal formé, ce qui est également un problème courant avec les données fournies par l'utilisateur.

Utiliser c'est facile. Il suffit d'instancier l'objet SafeHTML et d'appeler sa méthode d'analyse:

require_once ('classes / safehtml.php');

$ safehtml = & new SafeHTML ();

if (isset ($ _POST ["inputfield"])) {$ inputfield = $ _ POST ["inputfield"]; $ cleaninput = $ safehtml-> parse ($ inputfield); }

Cela prendra le paramètre «inputfield» posté, supprime tous les méchants, XHTMLify ce qui reste, et le résultat sera stocké dans la variable $ cleaninput. C’est un ajout simple à votre code, et beaucoup plus simple que d’essayer de rouler le vôtre.

Le seul bémol de ce paquet, c’est qu’il a été écrit avec une stratégie d’autorisation par défaut, supprimant les balises qui se trouvent dans son tableau deleteTags, mais permettant essentiellement tout le reste. Si vous préférez laisser passer uniquement les balises que vous souhaitez autoriser, je vous recommande d'ajouter un tableau allowTags et d'ajuster la méthode _openHandler, en ajoutant ce qui suit après la vérification deleteTags:

if (! in_array ($ name, $ this-> allowTags)) {return true; }

Vous devrez remplir les lettres d'autorisation avec tout ce que vous savez être sûr et bienvenu, et vous risquez d'en manquer quelques-unes que les gens voudront utiliser légitimement, mais cela est facilement corrigé et la politique de refus par défaut est beaucoup plus sûre à long terme. .

SafeHTML - un analyseur HTML anti-XSS, écrit en PHP

Part

Laisser Un Commentaire