Los enlaces a destinos de origen cruzado no son seguros

Published on Updated on

Translated to: English, 한국어, 中文, Pусский, 日本語

Cuando se vincula a una página de otro sitio mediante el atributo target="_blank", puede exponer su sitio a problemas de rendimiento y seguridad:

  • La otra página puede ejecutarse en el mismo proceso que su página. Si la otra página ejecuta mucho JavaScript, el rendimiento de su página puede verse afectado.
  • La otra página puede acceder a su objeto de window con la propiedad window.opener. Esto puede permitir que la otra página redirija su página a una URL maliciosa.

Agregar rel="noopener" o rel="noreferrer" a sus target="_blank" evita estos problemas.

A partir de la versión 88 de Chromium, los anclajes con target="_blank" obtienen automáticamente un comportamiento noopener de forma predeterminada. La especificación explícita de rel="noopener" ayuda a proteger a los usuarios de navegadores heredados, incluidos Edge Legacy e Internet Explorer.

Cómo fallar la auditoría de destino de origen cruzado de Lighthouse

Lighthouse señala enlaces inseguros a destinos de origen cruzado:

Auditoría Lighthouse que muestra enlaces inseguros a destinos de origen cruzado

Lighthouse utiliza el siguiente proceso para identificar enlaces como inseguros:

  1. Reúne todas las etiquetas <a> que contengan el atributo target="_blank", pero no los rel="noopener" o rel="noreferrer".
  2. Filtra los enlaces del mismo host.

Debido a que Lighthouse filtra los enlaces del mismo host, existe una situación limítrofe que debe tener en cuenta si está trabajando en un sitio grande: si una página contiene un enlace target="_blank" a otra página de su sitio sin usar rel="noopener", las implicaciones de rendimiento de esta auditoría aún se aplican. Sin embargo, no verá estos enlaces en los resultados de Lighthouse.

Each Best Practices audit is weighted equally in the Lighthouse Best Practices Score. Learn more in The Best Practices score.

Cómo mejorar el rendimiento de su sitio y prevenir vulnerabilidades de seguridad

Agregue rel="noopener" o rel="noreferrer" a cada enlace identificado en su informe Lighthouse. En general, cuando use target="_blank", siempre agregue rel="noopener" o rel="noreferrer":

<a href="https://examplepetstore.com" target="_blank" rel="noopener">
Example Pet Store
</a>
  • rel="noopener" evita que la nueva página pueda acceder a la window.opener y garantiza que se ejecute en un proceso separado.
  • rel="noreferrer" tiene el mismo efecto, pero también evita que la cabecera Referer se envíe a la nueva página. Consulte Tipo de enlace "noreferrer".

Consulte la publicación Compartir recursos de origen cruzado de forma segura para obtener más información.

Recursos

Last updated: Improve article

We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.