WordPress : des problèmes de sécurité si vous utilisez l’attribut html data-* pour l10n ?
Je dois transmettre un objet javascript multidimensionnel localisé à une page. L’objet est construit en utilisant php et représente certains paramètres du thème wp. Je ne peux pas trouver un moyen d’utiliser wp_localize_script pour cela, car il n’analysera pas les tableaux multidimensionnels.
Au lieu de cela, j’ai trouvé la solution d’utiliser un attribut html5 data-* pour cela, puis d’utiliser jQuery pour le récupérer, en espérant que cette méthode fournira une compatibilité x-navigateur.
Donc, sur la page où j’ai besoin d’accéder aux données localisées, je laisse la sortie php :
<div id="localized" style="display:none" data-localized='{"user": "Doe", "skills": {"html":5, "css":4, "php":3} }'>
J’obtiens ensuite ces données localisées en utilisant:
var my_localazed_data = $('#localized').data('localized');
Ça fonctionne bien. Mais mon souci ici est :
1) Ce navigateur est-il compatible ?
2) Y a-t-il un problème de sécurité à prendre en compte par rapport à l’utilisation de wp_localize_script ?
Solution n°1 trouvée
Q : 1.) Ce navigateur est-il compatible ?
Oui, pour tous les navigateurs prenant en charge jQuery data(). jQuery est généralement pris en charge par la plupart des navigateurs modernes.
Q : 2) Y a-t-il un problème de sécurité à prendre en compte par rapport à l’utilisation de wp_localize_script ?
wp_localize_script()
fait principalement la même chose, mais il conserve les données côté serveur et non dans le DOM.
Comme toujours, l’utilisation de javascript et l’interaction avec le DOM ont des implications sur la sécurité. Vous devez suivre les règles pour coder et décoder correctement toutes les données arbitraires en toute sécurité afin que les injections ne puissent pas introduire de comportement involontaire.
0 commentaire