Sécurité · Question 8 sur 12
Un visiteur saisit <script>alert(1)</script> comme nom, et le template Fluid l'affiche avec {name}. Que se passe-t-il ?
1 réponse est correcte. Facile
Afficher la solution
Solution
- C Le texte apparaît visiblement sur la page, car Fluid échappe les chevrons
Explication
Fluid échappe automatiquement les variables comme {name} avec htmlspecialchars() lors de l'affichage : <script> devient <script>, et le navigateur affiche les caractères comme du texte au lieu de les interpréter comme du HTML. Cet échappement automatique est la protection la plus importante contre le cross-site scripting (XSS) dans les templates TYPO3. Il ne s'applique plus si l'on affiche la valeur avec <f:format.raw> ou {name -> f:format.raw()}, ce qu'il ne faut jamais faire avec des saisies utilisateur. Fluid ne supprime pas le contenu et ne lève pas non plus d'erreur ; la valeur est conservée, elle est seulement rendue inoffensive.