Comment nettoyer en toute sécurité une zone de texte qui prend une entrée HTML complète


9

Je développe un plugin qui permet à l'utilisateur d'envoyer des e-mails HTML à partir de l'administrateur WordPress. Comment dois-je purifier l'entrée de la zone de texte? Il doit être capable de contenir toute la gamme de balises HTML pouvant apparaître dans un e-mail HTML. Si j'utilise wp_kses()alors je devrais utiliser une énorme liste de balises autorisées.

La zone de texte enregistre son contenu dans la base de données via des options personnalisées.

Réponses:


14

Il y a déjà une énorme liste construite pour vous , qui peut être retournée en wp_kses_allowed_html()fonction du contexte et filtrée via le wp_kses_allowed_htmlfiltre, également contextuellement. La création de cette liste ne devrait pas être difficile.

Cependant, "toute la gamme de balises HTML qui pourraient apparaître dans un e-mail HTML" devrait être assez proche de la plage autorisée pour un article ordinaire et wp_kses_post()devrait donc vous aider à faire un long chemin avec peu d'effort.


Oui, c'est une grande liste. Je viens donc d'importer cela en tant que paramètre, puis d'ajouter les extras dont j'ai besoin, comme <html>et <body>etc.
tommyf

Oui, si vous avez besoin que vos utilisateurs incluent autant de balisage. Je générerais cette partie pour eux, si c'était moi.
s_ha_dum
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.