J'ai vu dans une vidéo tutoriel que nous devrions utiliser Html.Encode dans nos vues pour empêcher les injections malveillantes. Cependant, lorsque le texte que je suis en train de coder contient le caractère (par exemple Dog's), la sortie dans le navigateur est Dog. J'aurais pensé que chaque personnage potentiellement dangereux serait remappé à un code de sécurité que le navigateur rendrait correctement. Ce n'est pas le cas? Comment puis-je apparaître dans le navigateur, mais de manière sécurisée au format HTML?Comment rendre une citation simple en toute sécurité
2
A
Répondre
5
Si vous utilisez ASP.NET MVC 2 <%:%> encode déjà la valeur pour vous Dans Razor (MVC 3) @ code les valeurs pour vous afin que vous n'avez pas besoin d'envelopper la sortie en Html. Encode
Assurez-vous que vous n'êtes pas à double encodage
6
Le Razor @
dans encoder automatiquement pour vous, ce qui signifie que vous avez probablement fait un double codage. Exemple:
@Html.Encode("This is \"safe\"")
est plus ou moins la même chose que
@{Response.Write(Html.Encode(Html.Encode("This is \"safe\"")));}
J'sais si ce dernier fonctionne Razor bien.
Questions connexes
- 1. Comment remplacer une simple citation (') par une barre oblique inverse puis une citation simple (\') en utilisant sed?
- 2. supprimer toute citation en utilisant regexp
- 3. JSON - ajouter une variable en toute sécurité
- 4. Comment fermer un IndexReader en toute sécurité?
- 5. Comment utiliser $ _GET en toute sécurité?
- 6. Comment utiliser un obfuscateur en toute sécurité?
- 7. Comment verrouiller en toute sécurité cette propriété?
- 8. Comment utiliser file_get_contents en toute sécurité?
- 9. Comment utiliser window.history.pushState 'en toute sécurité'
- 10. Comment autoriser l'injection SQL en toute sécurité?
- 11. Comment analyser bbcodes en toute sécurité?
- 12. comment utiliser en toute sécurité LIKE
- 13. Comment déclencher un événement en toute sécurité?
- 14. Comment faire une simple citation d'un argument dans une macro?
- 15. Que signifie une simple citation (') dans SystemVerilog?
- 16. Retrait simple citation d'une chaîne en php
- 17. Comment supprimer en toute sécurité une branche git distante?
- 18. Comment définir/obtenir une chaîne Java en toute sécurité?
- 19. Comment puis-je stocker en toute sécurité une clé secrète?
- 20. javascript simple double citation problème
- 21. Comment communiquer en toute sécurité avec le serveur?
- 22. Enregistrer les variables php en toute sécurité
- 23. appeler en toute sécurité les méthodes
- 24. Passez l'objet Ruby en JavaScript en toute sécurité
- 25. Soulever un fil d'événement en toute sécurité
- 26. Exécuter C++ dans VM, en toute sécurité
- 27. Toute façon de stocker un mot de passe en toute sécurité dans une application
- 28. Comment échapper une seule citation?
- 29. Comment convertir en toute sécurité NVARCHAR en MONEY
- 30. Comment convertir en toute sécurité `ToBase64String` en morceaux?
le dernier travaillerait en rasoir, bien que vous ne devriez pas écrire directement à l'objet 'response'. Si vous faites des choses pourraient être rendues dans un endroit inattendu. – marcind
Quoi? Le code ne s'exécute-t-il pas séquentiellement? – Alxandr
Le code s'exécute de manière séquentielle, mais la sortie du rasoir est écrite dans un tampon de texte qui n'est envoyé au flux de réponse qu'une fois l'exécution d'une page terminée. Si vous écrivez directement dans le flux de réponse, vous pouvez injecter votre sortie avant que le vidage ne se produise, ce qui entraîne une commande inattendue. – marcind