WordPress y el XSS del jQuery

·

Hace unos días me pasaban por Twitter una información sobre algunos problemas de XSS que tiene jQuery, justo de la versión que actualmente utiliza WordPress y que vendrá de serie con WordPress 5.0.

Siempre hay mucha problemática con la incompatibilidad de versiones de jQuery, por lo que este posible ataque por XSS se vuelve razonablemente interesante.

En todos sitios te recomiendan actualizar a jQuery 3.0.0 o superior, pero claro, aquí es donde entran las incompatibilidades.

¿Qué hacer en estos casos?

Hay varias opciones… la primera y más sencilla es probar un plugin como el jQuery Updater que básicamente actualiza el jQuery que viene con el sistema por defecto a una versión superior. Si esto no funciona, pues poco a hacer.

Otra opción es montarte tu propia función con las últimas versiones disponibles. Por ejemplo:

Subir de jQuery 1.x.x a 2.x.x

add_action( 'wp_enqueue_scripts', 'replace_core_jquery_version' );
function replace_core_jquery_version() {
  wp_deregister_script( 'jquery-core' );
  wp_register_script( 'jquery-core', 'https://code.jquery.com/jquery-2.2.4.min.js', array(), '2.2.4' );
  wp_deregister_script( 'jquery-migrate' );
  wp_register_script( 'jquery-migrate', 'https://code.jquery.com/jquery-migrate-1.4.1.min.js', array(), '1.4.1' );
}

Subir de jQuery 1.x.x a 3.x.x

add_action( 'wp_enqueue_scripts', 'replace_core_jquery_version' );
function replace_core_jquery_version() {
  wp_deregister_script( 'jquery-core' );
  wp_register_script( 'jquery-core', 'https://code.jquery.com/jquery-3.3.1.min.js', array(), '3.1.1' );
  wp_deregister_script( 'jquery-migrate' );
  wp_register_script( 'jquery-migrate', 'https://code.jquery.com/jquery-migrate-3.0.1.min.js', array(), '3.0.1' );
}

Obviamente, como he comentado al inicio, hacer estos cambios puede provocar muchas incompatibilidades, no en el propio WordPress de por sí, sino con otros scripts de otros plugins que puedan existir. Pero bueno, nunca está de más hacer pruebas y comprobar si funciona.

Comments

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *