Un cliente nuestro ha realizado una prueba de evaluación de seguridad en su sitio web, y uno de los problemas que surgió fue la neutralización inadecuada de las etiquetas HTML relacionadas con el script en una página web (secuencia de comandos de sitio cruzado autenticado).
Como resultado, es posible agregar una etiqueta de script al campo de título de una publicación o una página en WordPress, y ese script se ejecutará al visitar la página. Esto se probó agregando la siguiente etiqueta al campo de título, y para el propósito de la ilustración, usaré lo mismo en el resto de mi mensaje:

Agregar esto al campo de título resultó en la aparición del mensaje al visitar la página:

El sitio web del cliente utiliza los complementos del editor clásico, así como algunos otros complementos y está construido con un tema personalizado, por lo que repliqué esto en una instalación limpia de WordPress sin ningún complemento activado, y llegué a las siguientes conclusiones:
- El editor de texto tanto en el editor de bloque predeterminado como en el editor clásico neutralizan la etiqueta de la misma manera.
- Cuando se activa el complemento del editor clásico, el campo de título no neutraliza la etiqueta, se almacena en la base de datos tal como está.
- El campo de título en el editor de bloque predeterminado neutraliza la etiqueta correctamente, cambiando el
<
a<
que creo que es el comportamiento deseado. - Sin embargo, esto se puede evitar utilizando la edición rápida para cambiar el título. Al usar este campo para colocar la etiqueta, no se produce neutralización:

Esta captura de pantalla ilustra la diferencia entre neutralizar en el contenido de la publicación y no neutralizar en el campo de título:

Ahora sé que puedo desinfectar la salida en mi tema para evitar que el script se ejecute, pero siento que esa es una falsa seguridad ya que el código todavía se inyecta en la base de datos sin neutralización. El hecho de que se neutralice en el post_content y en el campo de título en el editor de bloques, indica que puede y debe hacerse antes de la inserción de la base de datos, y el hecho de que el campo de título de edición rápida de la pantalla no logra neutralizar incluso cuando el editor de bloques se usa, me hace creer que este es un problema central de WordPress y no un problema de complemento de editor clásico.
Me gustaría tener la opinión de las comunidades sobre esto; ¿Hay una (buena) razón por la que el campo de título no neutralizado de la misma manera? ¿Es esto algo que puedo controlar/cambiar en mi tema personalizado?
Agradezco cualquier sugerencia sobre cómo abordar esto mejor.
¡Gracias de antemano!
Anna