web-dev-qa-db-fra.com

Quand dois-je utiliser esc_attr pour utiliser les fonctions internes de WordPress

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?

4
Howard

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

5
s_ha_dum

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().

1
Otto

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.

0
M-R