¿Por qué Wordpress no filtra post_title?

1

Hoy, cuando hice algunas pruebas y descubrí que Wordpress no filtra el post_título.

Respectivamente, hago publicaciones con los títulos:

  1. <?php while ( have_posts() ) : the_post(); echo 'Post Title'; endwhile;?>
  2. <a href="http://stackexchange.com/">Post Title</a>
  3. <script type="text/javascript">alert('Post Title');</script>

yo Con la primera publicación, Wordpress pone el título completo en la etiqueta de comentario html: %código%. Entonces no aparece ningún título para esta publicación.

II. El segundo, Wordpress devuelve un título vinculado a enlace .

III. Lo peor es lo tercero. Aparece tres veces una ventana emergente con el mensaje "Publicar título". ¡Es raro! ¿Qué está ejecutando Wordpress?

Hice esta prueba con Wordpress 4.2.2 sobre el tema Twentyfiteen. No sé mucho sobre seguridad.

¿Se pueden explotar estos errores y cómo se filtra?

    
pregunta Leo Dang 18.05.2015 - 12:58
fuente

2 respuestas

2

Alguna información general:
Si bien inicialmente podría parecer un error, esto no se considera uno.

Hay ciertos roles en un sitio de WordPress (como administradores y editores) que tienen la capacidad de publicar html sin filtrar en el sitio web. Esto incluye el título de la publicación que es el que usaste aquí. Esto no se considera un error ya que se puede suponer que la persona que tiene privilegios de administrador para el sitio específico puede agregar o eliminar cualquier contenido que desee de todos modos. Vea este enlace para más información oficial: enlace

Puede pensar en ello de una manera en que poner el bloque de script mencionado anteriormente en su sitio web personal tampoco se considere un error.

Para responder a sus preguntas:
Wordpress colocará el html sin filtrar en el lugar donde se incluiría el título de la página. Este será un enlace si elige su segunda entrada, un bloque de script de JavaScript (que luego será ejecutado por su navegador) si elige la tercera entrada o básicamente cualquier entrada que le dé.

Sin embargo, WordPress no interpretará el código php si está publicado allí. Solo incluirá la entrada como una cadena y modificará las etiquetas para parecerse a los comentarios html.

Sin embargo, si todo esto le parece extraño y no desea que los administradores y editores puedan publicar html sin filtrar en su sitio, es posible que desee agregar:

  

define ('DISALLOW_UNFILTERED_HTML', true);

a su archivo wp-config.php (como se describe en el enlace mencionado anteriormente).

    
respondido por el Denis 18.05.2015 - 14:18
fuente
1

Su primer ejemplo es una demostración de que wordpress maneja correctamente su intento de "inyección" de PHP: el código se escapa y no se ejecuta en el servidor.

Su segundo ejemplo es bastante sencillo: coloca un enlace en un título, obtiene un enlace en el título. No estoy seguro de lo que esperaba pero no viola la restricción básica: alguien, cualquiera que tenga derecho a publicar un artículo, crear contenido, puede usar un enlace. Si eso no es lo que quieres, quizás Wordpress no sea la herramienta para ti.

El tercer ejemplo podría ser un poco más delicado, pero tampoco viola las premisas básicas del modelo de seguridad de Wordpress: debe ser un autor (autenticado y con la autorización adecuada) para crear un nuevo artículo o editar un existente. uno. Por lo tanto, solo alguien que ya tenga derecho a ejecutar código en el contexto de los usuarios visitantes puede usar el texto del artículo para ejecutar JavaScript en el navegador.

    
respondido por el Stephane 18.05.2015 - 14:14
fuente

Lea otras preguntas en las etiquetas