Est-ce que quelqu'un a mis en place un bon système pour s'assurer que la sortie est correctement codée en HTML là où c'est logique? Peut-être même quelque chose qui reconnaît quand la sortie doit être encodée en URL ou codée JSON à la place? L'approche paresseuse - il suffit d'encoder toutes les entrées - pose des problèmes lorsque vous souhaitez envoyer ces entrées à une base de données ou à un bloc de code JavaScript. Donc, quelque chose d'un peu plus intelligent est nécessaire. L'approche fastidieuse - mettre la bonne fonction d'encodage autour de chaque donnée sur le gabarit - fonctionne, mais il est facile pour les développeurs d'oublier de le faire.Technique pour assurer le codage HTML et URL
Y at-il une bonne approche qui le rend facile pour les développeurs, et assure que le bon codage est fait? J'écoutais l'un des podcasts de SO, et Joel a lancé une idée sur l'utilisation de données typées pour imposer une différence entre les chaînes codées en HTML et les chaînes non codées. Peut-être que cela pourrait être un point de départ.
Je cherche plus une stratégie qu'une implémentation dans une langue particulière (bien que je serais heureux d'entendre parler d'implémentations qui existent déjà et qui fonctionnent).
EDIT: Voici quelques liens que j'ai trouvé jusqu'à présent:
- A type-based solution to the "strings problem"
- String::Smart
- Reducing XSS by way of Automatic Context-Aware Escaping in Template Systems
- Secure String Interpolation in JS
De quel langage serveur, de quelle (s) plate-forme (s) parlez-vous? C'est l'information nécessaire IMO si vous voulez des réponses détaillées. –
J'utilise PHP, mais voir le dernier paragraphe. –