Eliminar rel = «noopener noreferrer» en WordPress 4.7.4 y posteriores

Categorías: WordPress

A partir de la versión 4.7.4 de WordPress el editor TinyMCE incluido en la distribución soluciona la vulnerabilidad target=»_blank» y lo hace añadiendo automáticamente a estos enlaces rel=»noopener noreferrer».

¿Qué es la vulnerabilidad target=»_blank»?

Esta vulnerabilidad (en inglés: «reverse tabnabbing») es un ataque de phishing en el que el atacante cambia la pestaña auténtica por un documento malicioso usando el selector window.opener.location.assign() cuando se accede mediante un enlace que se abre en una nueva ventana (atributo del enlace: target=»_blank»).

Explicado de manera sencilla: Cuando se hace clic en un enlace que abre una página nueva, esta se abre en una nueva pestaña pero al volver atrás a la web de procedencia, esta se reemplaza por una página falsa que simula ser la auténtica y se usa para obtener datos del usuario.

¿Cuál es la solución de WordPress a partir de la versión 4.7.4?

La solución de la versión 4.7.4 de WordPress es añadir rel=»noopener noreferrer» a todos los enlaces con un atributo target=»_blank».

¿Por qué esta solución puede tener efectos adversos sobre los enlaces de afiliados?

Muchos de los programas de afiliación usan el referrer para conocer la procedencia de las visitas que se reciben con el código de afiliación. Si añadimos noreferrer al enlace, esta información no se pasa. Y hay muchos programas de afiliados que sin el referrer correcto no pagan comisiones de afiliados.

¿Cómo evitar que WordPress añada el rel=»noopener noreferrer» a los enlaces con target=»_blank»?

En un ticket de soporte de WordPress referencian al siguiente código que evita que WordPress añada el rel=»noopener noreferrer».

Este código hay que añadirlo al archivo functions.php del tema o podemos crear un plugin con el mismo:

add_filter('tiny_mce_before_init','tinymce_allow_unsafe_link_target');
function tinymce_allow_unsafe_link_target( $mceInit ) {
$mceInit['allow_unsafe_link_target']=true;
noopener noopenerreturn $mceInit;
}

No se recomienda el uso de este código, porque deshabilita la solución de la vulnerabilidad del target=»_blank», pero en sitios que viven de afiliados nos asegura que llegarán los pagos porque se puede realizar el seguimiento de la procedencia del enlace.

Salir de la versión móvil