Como limpar com segurança uma área de texto que recebe entrada HTML completa

9

Estou desenvolvendo um plugin que permite ao usuário enviar e-mails em HTML de dentro do administrador do WordPress. Como devo limpar a entrada da área de texto? Ele deve ser capaz de conter todo o intervalo de tags HTML que podem aparecer em um email em HTML. Se eu usar wp_kses(), teria que usar uma lista enorme de tags permitidas.

A área de texto salva seu conteúdo no banco de dados por meio de opções personalizadas.

tommyf
fonte

Respostas:

14

Já existe uma lista enorme criada para você , que pode ser retornada com wp_kses_allowed_html()base no contexto e filtrada pelo wp_kses_allowed_htmlfiltro, também contextualmente. Criar essa lista não deve ser difícil.

No entanto, "todo o intervalo de tags HTML que podem aparecer em um email em HTML" deve estar bem próximo do intervalo permitido para uma postagem comum, portanto wp_kses_post(), você deve percorrer um longo caminho com pouco esforço.

s_ha_dum
fonte
Sim, isso é uma grande lista. Então, eu só importar que como o parâmetro seguida, adicione os extras que eu preciso, como <html>e <body>etc.
tommyf
Sim, se você precisar que seus usuários incluam essa marcação. Eu geraria essa parte para eles, se fosse eu.
s_ha_dum