Los enlaces a destinos de origen cruzado no son seguros
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 propiedadwindow.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.
Cómo fallar la auditoría de destino de origen cruzado de Lighthouse #
Lighthouse señala enlaces inseguros a destinos de origen cruzado:
Lighthouse utiliza el siguiente proceso para identificar enlaces como inseguros:
- Reúne todas las etiquetas
<a>
que contengan el atributotarget="_blank"
, pero no losrel="noopener"
orel="noreferrer"
. - 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.
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 lawindow.opener
y garantiza que se ejecute en un proceso separado.rel="noreferrer"
tiene el mismo efecto, pero también evita que la cabeceraReferer
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