Pour une application web, il faut s’attendre à ce qu’une chaine de caractères issue d’un input, d’un prompt ou d’une textarea passent par du javascript, une url, php, du sql, du json et revienne en html, css, svg, en alert via le mail ou dans un eval ou une expression régulière.
Dans l’ordre alphabétique :
- alert
- css
- eval
- expression régulière
- html
- input
- javascript
- json
- php
- prompt
- sql
- svg
- textarea
- url
Où l’on trouve des langages de programmation, des formats de données, des fonctions et des formats de communication.
Il ne faut pas espérer qu’une chaine de caractères puisse traverser tout cela sans soucis. Et malheureusement, les embuches dépendent de l’étape.
Les caractères gênants peuvent être (selon l’étape) :
- les lettres accentuées ou comportant de petits ajouts : à, é, ê, ç, ñ, …
- les caractères délimitant : « , ‘, <, >, [, ], …
- les caractères d’échappement : \, &, …
- les caractères spéciaux : $, _, ?, =, …
Pour constater l’étendue du problème, regarder ce qui est dit, juste pour certains langage de programmation : http://rosettacode.org/wiki/Special_characters