2010-10-02 3 views
1

Je suis en train de le faire. Cela semble fonctionner mais est-ce le meilleur moyen? Comme si les gens pouvaient toujours poster du code XSS ou est-ce que ça devrait tout attraper?Est-ce un bon moyen de supprimer Script, Onmouseover, onerror et onload avec php

$pattern[0] = '/script/'; 
$pattern[1] = '/onmouseover/'; 
$pattern[2] = '/onerror/'; 
$pattern[3] = '/onload/'; 
$replacement[0] = 'scr<b></b>ipt'; 
$replacement[1] = 'onmouse<b></b>over'; 
$replacement[2] = 'on<b></b>error'; 
$replacement[2] = 'on<b></b>load'; 

Répondre

4

Pour aseptiser le contenu HTML généré par l'utilisateur, je préfère compter sur les services d'un existant, bibliothèque activement maintenu comme HTML Purifier:

Purificateur HTML est une bibliothèque de filtre HTML conforme aux standards écrit en PHP. HTML Purifier supprimera non seulement tout code malveillant (mieux connu sous le nom de XSS) avec une liste blanche vérifiée, sécurisée et permissive, mais il veillera également à ce que vos documents soient conformes aux normes, ce qui n'est possible qu'avec une connaissance complète des spécifications du W3C.

+0

Le seul problème est que c'est une bibliothèque wheigt lourd et si vous souhaitez le configurer pour autoriser uniquement javascript insertion comme dans la question qu'il faudra heures ..... –

+1

Bien sûr - mais il est sans doute encore mieux que construire votre propre solution dans la plupart des cas. (Cela dit, si vous découvrez quelque chose de plus facile à utiliser, postez certainement une réponse ici!) –

Questions connexes