Je me demandais juste si je devais encoder toutes les données avant de les mettre dans la base de données ou de les afficher à l'utilisateur? Ou les deux.Html Encode lorsque les données sont entrées? Ou produit ou les deux?
En ce moment je le fais quand je montre à l'utilisateur. J'utilise asp.net mvc 2.0 donc je fais juste tout simplement <%: %>
ce que l'encodage pour moi.
Je ne suis pas sûr avec les deux mais il pourrait être un peu extrême pour le faire à des moments.
Aussi, j'ai vraiment juste à faire attention à la chaîne entrée par l'utilisateur non?
Comme je viens de rencontrer un problème où l'un de mes plugins ne pouvait pas, pour une raison quelconque, comprendre comment trier les dates si la date était encodée en HTML.
Je viens de le faire encoder sans y penser. Maintenant que quelqu'un me l'a indiqué, cela n'a pas de sens de faire cela puisque je reçois la date directement dans la base de données et dans la base de données, elle est stockée en tant que datetime. Donc, ne peut pas vraiment stocker javascript là-bas.
Je suis donc je devine vraiment ne pas avoir à les encoder (me corriger si je me trompe)
int, bit (bools), dataetimes, décimaux types s'il stockés dans la base de données de cette façon.
Je pourrais encore les encoder juste pour le diable si cela n'effectue aucun de mes plugins mais il est bon de savoir que je n'ai probablement pas à le faire.
habituellement vous 'obtenez' les données quand elles ont déjà été décodées, vous les avez mises dans la base de données (ou autre) décodée, et la syntaxe <%: %>, comme vous l'avez dit, gérera l'encodage au moment de l'affichage. Grâce à cette syntaxe, vous ne devriez pas avoir à vous soucier de l'encodage/décodage ailleurs (au moins dans la grande majorité des cas) –