2010-03-08 5 views
1

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:

+0

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. –

+0

J'utilise PHP, mais voir le dernier paragraphe. –

Répondre

0

données qui va dans votre base de données ne devrait probablement pas avoir des échappements pour HTML, JavaScript, ou quoi d'autre. Si vous faire inclure le balisage, vous aurez juste à dépouiller si vous décidez d'injecter ces données dans un fichier CSV ou PDF, etc ...

Au lieu de cela, chaque fois que vous interrogez des données «brutes» comme ça hors de la base de données, échapper les données à ce moment-là en fonction de l'endroit où vous l'injectez; HTML, une chaîne JavaScript, un script côté serveur, etc.

Questions connexes