Skip to content
Aprender Medir Blog Case studies About
En esta página
  • Cómo fallar la auditoría de destino de origen cruzado de Lighthouse
  • Cómo mejorar el rendimiento de su sitio y prevenir vulnerabilidades de seguridad
  • Recursos

Los enlaces a destinos de origen cruzado no son seguros

May 2, 2019 — Actualizado Aug 28, 2019
Available in: 日本語, 한국어, Русский, 中文, English
Appears in: Auditorías de las prácticas recomendadas
En esta página
  • Cómo fallar la auditoría de destino de origen cruzado de Lighthouse
  • Cómo mejorar el rendimiento de su sitio y prevenir vulnerabilidades de seguridad
  • Recursos

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 #

  • Código fuente para la auditoría Enlaces a destinos de origen cruzado inseguros
  • Comparta recursos de origen cruzado de forma segura
  • Aislamiento del sitio para desarrolladores web
Última actualización: Aug 28, 2019 — Mejorar el artículo
Return to all articles
Compartir
suscribir

Contribute

  • Presentar un error
  • Ver fuente

Contenido relevante

  • developer.chrome.com
  • Chrome Actualizaciones
  • Web Fundamentals
  • Case studies
  • Podcasts
  • Shows

Conectar

  • Twitter
  • YouTube
  • Google Developers
  • Chrome
  • Firebase
  • Google Cloud Platform
  • Todos los productos
  • Condiciones y privacidad
  • Principios de la Comunidad

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies.