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.
¿Quiere decir esto que si en mis enlaces de afiliado sale el nuevo «noopener» se perderá mi ID de adiliado por el camino y no cobraré nada? No se si lo he entendido bien, pero espero que no sea cierto. Gracias.
«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.»
Hola Jose. Pues sinceramente depende del programa de afiliados. Hay muchos que controlan la procedencia del enlace (solo permitiendo que se compartan en un determinado dominio) y al añadir el noreferrer se pierde la URL de procedencia. Veremos como reaccionan los programas de afiliación, nosotros en los nuestros de momento no tenemos claro como implementarlo.
Por tanto: Depende de cada programa de afiliación. Nosotros por si acaso lo hemos deshabilitado de momento en todos los sitios en los que tenemos enlaces de afiliación.
hola!
no sabía esto.
Vaya liada.
¿Estás seguro? ¿Qué habéis hecho al final?
Gracias.
Muy buenas Miguel,
La verdad es que si que es una liada importante. Nosotros de momento y hasta que los programas de afiliados con los que trabajamos no cambien sus condiciones, estamos usando el código para que no se añada el «noopener noreferrer». A los programas de afiliados les interesa conocer la procedencia de sus conversiones. Añadiendo este código a los enlaces, se pierde esta relación y no se sabe de dónde procede la conversión. Y todos los programas de afiliados tienen tipos de sitios donde no se pueden poner sus enlaces. Veremos que pasa.
¿Sabrías decirme si en el caso de ThemeForest es así? Muchas gracias, había imaginado algo parecido pero he tenido que venir a tu blog para descubrirlo, jejeje. Muy buen post.
Muy buenas! Themeforest es una de las empresas que tienen un programa de afiliados más restrictivo y más controlado.
En sus condiciones (punto 19) pone entre otras cosas que:
Y todo es lo comprueban con el REFERRER para ver desde donde se enlaza a sus productos. Y por experiencia te podemos decir que lo comprueban muchas veces personas. Sin referrer tu puedes usar todas las prácticas prohibidas porque no pueden saber la procedencia. Por esta razón con ENVATO / THEMEFOREST tendríamos mucho cuidado. De todas formas, les acabamos de poner un ticket a ver que nos dicen de forma oficial.
Un saludo.
Por si no queréis tocar el código del archivo functions.php, ahora hay un plugin en el repositorio Allow unsafe link target que permite hacer lo mismo solo instalando y activando el plugin.
OJO: Tanto el plugin como el código del archivo functions.php solo produce cambios cuando se guarda un post / página en el editor. No lo quita de posts / páginas que pudieran tenerlo ya.
Al igual no hay que olvidar que la actualización de WordPress no se aplica a posts / páginas ya guardados. Solo a las páginas y posts que se crean nuevos.
Para quitar el noreferrer a posts / páginas creados / actualizados después de la actualización hay que sustituir ese atributo con un plugin como Better Search and Replace o directamente en la base de datos.
Sabes si esto tiene algo que ver con el «nofollow»? No logro encontrar una respuesta, porque por lo que entiendo, que sea “noopener noreferrer” no lo hace de por sí «nofollow», o si? Perdón si la consulta es muy básica, soy novata en esto, estoy aprendiendo 🙂
Hola Carla. Esto no tiene nada que ver con el
nofollow
. Elnofollow
se lo puedes añadir adicionalmente y entonces tendrías:noopener noreferrer nofollow
.