$secu.buildSanitizePolicy¶
Description¶
Construit une policy de sécurisation à partir d'un ensemble de règles. La règle ainsi construite pourra être réutilisée pour traiter des valeurs issues d'une requête SQL ou reçues en paramètre de script.
L'exemple ci-dessous crée une règle qui autorise les éléments <i>
ayant une classe (c'est par exemple le cas si un texte contient des
icones selon la syntaxe bootstrap, comme <i class="bi bi-star"/>).
1 2 3 4 5 6 7 | |
L'objet créé peut ensuite être réutilisé pour nettoyer des valeurs.
Par exemple on peut passer cette règle via l'option sanitize de la
méthode $sql.mselect pour que Ewt applique
le sanitize à toutes les valeurs reçues du SGBD.
1 2 3 | |
Info
La plupart des méthodes peuvent recevoir des règles de nettoyage
sous la forme de map, de tableau de maps ou d'objet pojo.
L'intérêt de construire un objet pojo relève avant tout d'une
question de performances : l'objet pojo est construit une seule
fois et réutilisé tel quel, alors qu'un map ou un tableau de maps
doit être parsé par le moteur à chaque fois. Il est donc plus
efficace du point de vue des performances de pré-construire un
objet pojo au moyen de $secu.buildSanitizePolicy.
Une liste exhaustive des options de nettoyages supportées est donnée dans ce chapitre.
Syntaxe¶
$secu.buildSanitizePolicy( rules )
Paramètres¶
rulesstring / map-
Objet décrivant les options de nettoyages autorisées. Les règles reprennent les options de configuration de la classe HtmlPolicyBuilder. Les règles peuvent être données sous forme de string (p.ex "FORMATTING|BLOCKS"), sous forme de map (p.ex
{ allowAttributes: "src", onElements: "img" }ou sous forme de tableau de maps.Les options de nettoyage sont décrites dans la documentation de la règle "sanitize" de la descript
Retour¶
Objet pojo référençant une
PolicyFactory)
décrivant la policy de nettoyage.
Exemple¶
1 2 3 4 5 6 7 8 9 10 11 | |
Traces générées par le code ci-dessus:
orig: Bla <i class="fa fa-check" onclick="alert('foo')"></i> bla <script>alert("bar");</script> bla
sanitized: Bla <i class="fa fa-check"></i> bla bla