J'ai reconnu que, selon le contexte dans lequel je veux utiliser certains paramètres, il y a au moins 4 types de codage nécessaires pour éviter l'exécution de code corrompu:Comment gérer les différents types de codage dans le javascript
Codage Javascript lors de la construction d'un code javascript, par ex.
var a = "what's up ?" var b = "alert('" + a + "');" eval(b); // or anything else that executes b as code
codage d'URL en utilisant une chaîne de caractères en tant que paramètre dans l'URL, par exemple
var a = "Bonnie & Clyde"; var b = "mypage.html?par=" + a; window.location.href = b; // or anything else that tries to use b as URL
codage HTML en utilisant une chaîne de caractères en tant que source HTML de certains éléments, par exemple,
var a = "<script>alert('hi');</script>"; b.innerHTML = a; // or anything else that interprets a directly
codage de l'attribut HTML en utilisant une chaîne de caractères en tant que valeur d'un attribut, par exemple,
var a = 'alert("hello")'; var b = '<img onclick="' + a + '" />'; // or anything else that uses a as a (part of) a tag's attribute
Alors que dans le behind ASP.NET Je suis conscient des façons de coder la chaîne dans les 4 cas (par exemple à l'aide DataContractJsonSerializer
, HttpUtility.UrlEncode
, HttpUtility.HtmlEncode
et HttpUtility.HtmlAttributeEncode
), il serait tout à fait intéressant de savoir s'il y a des utilitaires que je pourrais utiliser directement de javascript pour encoder/décoder des chaînes dans ces 4 cas.
Dans le cas 3, essayez-vous d'éviter l'exécution du JavaScript? –
exactement, je veux le code à afficher à la page dans ce cas –