Cómo desinfectar de forma segura un área de texto que toma entrada HTML completa

9

Estoy desarrollando un complemento que permite al usuario enviar correos electrónicos HTML desde el administrador de WordPress. ¿Cómo debo desinfectar la entrada de textarea? Tiene que poder contener toda la gama de etiquetas HTML que pueden aparecer en un correo electrónico HTML. Si lo uso wp_kses(), tendría que usar una gran lista de etiquetas permitidas.

El área de texto guarda su contenido en la base de datos a través de opciones personalizadas.

tommyf
fuente

Respuestas:

14

Ya hay una gran lista creada para usted , que puede devolverse wp_kses_allowed_html()según el contexto y filtrarse a través del wp_kses_allowed_htmlfiltro, también contextualmente. Crear esa lista no debería ser difícil.

Sin embargo, "todo el rango de etiquetas HTML que pueden aparecer en un correo electrónico HTML" debería estar bastante cerca del rango permitido para una publicación ordinaria, por lo que wp_kses_post()debería recorrer un largo camino con poco esfuerzo.

s_ha_dum
fuente
Sí, esa es una gran lista. Así que sólo importar que a medida que el parámetro a continuación, añadir los extras que necesito, como <html>y <body>etc
tommyf
Sí, si necesita que sus usuarios incluyan ese marcado. Generaría esa parte para ellos, si fuera yo.
s_ha_dum