Lorsque je mets une valeur WordPress dans la balise d'attribut, par exemple, la méthode suivante n'a pas besoin de esc_attr
par exemple.
// JS code
alert('<?php echo get_bloginfo('name');?>');
la méthode suivante nécessite esc_attr
// JS code
alert('<?php echo esc_attr($post->post_title);?>');
Quelle est la convention utilisée?
Vous pouvez regarder le Codex .
Encode <> & "'(inférieur à, supérieur à, esperluette, guillemet double, guillemet simple). Ne codera jamais les entités.
Étant donné que, sans doute, ces deux chaînes doivent être désinfectées . Imaginez un nom de site comme >> "My" Website's Great Title <<"
De plus, puisque vous utilisez ceci en Javascript, vous devriez probablement utiliser esc_js
à la place.
La convention est la suivante: "comprendre le fonctionnement du balisage, du fonctionnement des pirates informatiques malveillants et agir en conséquence". C'est ainsi que vous savez utiliser ces fonctions. En outre, Ne faire confiance à personne .
Voir aussi cet article de notre membre Stephen Harris : Désinfection et validation des données avec WordPress
Vous utilisez esc_attr()
lorsque vous exportez quelque chose destiné à figurer dans un attribut HTML.
Dans votre cas, vous devriez utiliser plutôt esc_js()
, ou éventuellement json_encode()
.
Si le titre de votre message contient une seule citation. La sortie de votre code serait
alerte ('c'est mauvais');
c’est-à-dire qu’en cassant votre code JavaScript, vous obtiendrez un "identifiant inattendu". Lorsque vous utilisez esc_attr , le résultat sera
alerte ('c'est mauvais');
Le titre de l'article sera encodé pour qu'il fonctionne dans les chaînes.