¿Qué filtran realmente unfiltered_html y unfiltered_upload?

8

Entre las capacidades de WordPress se encuentran unfiltered_htmly unfiltered_upload, sin embargo, aún no he encontrado ninguna documentación sobre lo que específicamente permiten o previenen en su filtrado.

La única mención que he encontrado en el sitio de WordPress unfiltered_htmles:

Permite al usuario publicar marcado HTML o incluso código JavaScript en páginas, publicaciones, comentarios y widgets.

He visto que JavaScript se filtra para los que no son administradores, pero ¿qué HTML se está filtrando?

Y para unfiltered_upload:

Esta capacidad no está disponible para ningún rol de forma predeterminada (incluidos los Superadministradores). La capacidad debe habilitarse definiendo la siguiente constante:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

Con esta constante definida, a todos los roles en una instalación de un solo sitio se les puede dar la capacidad unfiltered_upload, pero solo a los Superadministradores se les puede dar la capacidad en una instalación Multisitio.

Y de nuevo, la descripción no detalla lo que está permitido y lo que se filtra.

¿Alguien puede decirme exactamente qué elementos, códigos o tipos de archivos permiten y previenen las capacidades unfiltered_htmly las unfiltered_uploadcapacidades?

j08691
fuente

Respuestas:

7

Es difícil encontrar una respuesta precisa ya que las capacidades a menudo se usan de manera más amplia de lo que implican. Por ejemplo, la verificación manage_optionses generalmente sinónimo de verificación de usuario administrador y puede aparecer en contextos que en realidad no tienen mucho que ver con las opciones .

Por lo general , será una diferencia entre el contenido del tema que pasa o no pasa wp_kses(). La configuración específica de kses y lo que se considera permitido dependería del contexto y podría ser cauteloso.

Por unfiltered_uploadlo que recuerdo, es más sencillo. Sin ella, solo se permiten los tipos de archivos de la lista blanca. La lista se basa en wp_get_mime_types().

Rarst
fuente
1
En el archivo wp-includes/kses.phppuede encontrar los valores iniciales $allowedposttagsy las $allowedtagsmatrices utilizadas por las funciones kses.
Milo
Gracias por la explicación. Parece que los tipos MIME para cargas se pueden encontrar en core.trac.wordpress.org/browser/tags/4.3/src/wp-includes/… . ¿Alguna idea de dónde unfiltered_htmlpodría estar el código que hace referencia ?
j08691
unfiltered_htmlestá salpicado por toda la base de código. La búsqueda rápida de fuentes genera más de una docena de archivos diferentes que lo mencionan.
Rarst
¿Alguien puede trabajar en esto? Actualmente es una pesadilla imposible cargar medios no incluidos en la lista blanca. Ninguno de los complementos funciona correctamente. Wordpress es un CMS, sí, claro. Es un sistema de contenido MISmanagment.
Jim Maguire
1
esta pregunta literalmente nos ha salvado la vida, hemos estado buscando durante días la solución al problema que se extendió, tenemos un tipo de publicación personalizado que debe ser operado por clientes que generan sus publicaciones con scripts activos y archivos SVG y, , el problema no era guardar las publicaciones, el problema era que WP las había eliminado por completo,. esto nos dio la dirección correcta y el derecho capde uso, gracias
Kresimir Pendic
4

Aprecio que este es un hilo viejo, pero restringido unfiltered_html nos estaba causando grandes problemas en nuestro sitio de noticias.

Los escritores internos (una clase especial de usuarios) deben colocar fotos y videos en su historia. Si bien las fotos no son un problema, incrustar iframe en la página con el código de video incrustado vio desaparecer el código incrustado cuando guardaron sus historias.

Si el video fue incrustado para ellos por un editor, los escritores aún perderían el iframe cuando guardaran sus historias.

Al desbloquear unfiltered_html, los redactores de nuestro personal pueden incrustar el contenido del video y colocar su publicación correctamente.

En cuanto a las cargas no filtradas, creo que se ha respondido.

Espero que esto ayude a alguien.

John Le Fevre
fuente