Pourquoi Drupal filtre-t-il au moment de l’affichage ?
Référence sur drupal.org : 23 Février 2009 – 03h46 - http://drupal.org/node/263002
Une approche répandue dans d’autres applications web est de traiter ou filtrer les saisies utilisateurs pour des raisons de sécurité. Historiquement, Drupal préservait les saisies telles quelles et ne les filtraient qu’en sortie. Le sujet est débattu de temps à autre dans la communauté Drupal.
L’excellent article Safe string theory for the web de Steven Witten apporte une explication technique sur les raisons de filtrer selon les différents contextes des sorties.
Désormais, nous voyons que filtrer la saisie est problématique car nous ne pouvons connaître les caractères interdits sans connaître le contexte dans lequel ils apparaîtront.
Pour compliquer les choses, une chaîne donnée peut apparaître dans plus d’un contexte, par exemple en tant que texte HTML et aussi en tant qu’attribut comme dans <a title="$node->title">$node->title</a>. Donc si vous voulez filtrer tous les caractères, votre système sera paralysé parce que vous aurez besoin de filtrer trop de caractères, si vous voulez encoder, vous ne pouvez savoir comment encoder. L’encodage présente une autre problème, traiter du texte échappé est très malaisé (essayez d’extraire le teaser du corps d’un node HTML échappé).
Il n’y a pas d’autre alternative que d’enregistrer les saisies utilisateur sans modifications et d’appliquer les filtrages et les traitements appropriés lors des sorties.
- Version imprimable
- 2626 lectures
-

Commentaires
Poster un nouveau commentaire