Defaults.Exposed

Defaults.ExposedSoluciones › Cabeceras de aislamiento de origen cruzado (COOP / CORP / COEP)

Cómo arreglar Cabeceras de aislamiento de origen cruzado (COOP / CORP / COEP)

Tres instrucciones opcionales para el navegador que controlan cómo se permite a otros sitios web interactuar con el tuyo: abrirlo en ventanas emergentes, incrustar sus imágenes y scripts, o arrastrar sus recursos a sus propias páginas. Son endurecimiento moderno, no un imprescindible básico, y en nuestra puntuación son informativas: que falten no baja tu nota. Pero las dos seguras cierran un hueco silencioso de phishing y robo de ancho de banda, y el equipo de informática de un comprador cuidadoso se fijará cuando estén presentes.

En resumen, para tu negocio: Dos de estas tres cabeceras cierran el phishing sofisticado por ventana emergente e impiden que otros sitios enlacen directamente (hotlinking) tus imágenes y scripts (lo que te cuesta ancho de banda y puede filtrar datos). Son gratuitas, le llevan a un desarrollador unos 15 minutos y no romperán nada. La tercera es avanzada y puede romper la analítica, las fuentes y los elementos incrustados; la mayoría de las empresas deberían dejarla apagada. Ninguna afecta a tu nota, así que trátalas como pulido, no como pánico: haz las dos seguras y sáltate la arriesgada salvo que la necesites específicamente.

Lo que esto te puede costar

Por qué importa. Son cabeceras de endurecimiento del navegador orientadas al futuro. En nuestra metodología, las tres son informativas —están registradas con cero puntos y nunca mueven tu nota— porque son controles avanzados sin los que un sitio puede operar legítimamente, y una de ellas puede hacer daño si se aplica mal. Informamos sobre ellas para que veas dónde estás. Las dos seguras (COOP y CORP) merecen de verdad añadirse: gratuitas, rápidas, y cierran huecos reales de phishing por ventana emergente y de robo de recursos sin romper nada.

Qué son estas, en palabras llanas

Cuando alguien visita tu sitio web, su navegador no se limita a cargar tus páginas de forma aislada: también decide cómo se permite a otros sitios web interactuar con el tuyo. ¿Puede otro sitio abrir el tuyo en una emergente y mantenerlo agarrado? ¿Puede otro sitio extenderse e incrustar tus imágenes y scripts en sus propias páginas? ¿Puede tu propio sitio usar con seguridad ciertas funciones de navegador potentes y bloqueadas?

Estas tres cabeceras son instrucciones breves e invisibles que tu sitio web envía al navegador de cada visitante para responder exactamente a esas preguntas. Se conocen por sus iniciales:

Dos de ellas (COOP y CORP) son seguras de añadir y genuinamente útiles. La tercera (COEP) es avanzada y puede romper cosas si se activa sin cuidado.

Lo más importante que hay que saber de entrada: en nuestra puntuación, las tres son informativas. No afectan a tu nota. Que falte una no te cuesta nada. Informamos sobre ellas para que veas dónde estás y arregles las victorias fáciles, no para que te entre el pánico por un número.

Lo que esto puede costarte

Son riesgos de nicho, no de portada, pero son reales, y las soluciones son gratuitas.

Qué es cada una en realidad

COOP — Cross-Origin-Opener-Policy (segura, recomendada)

Cuando otro sitio web abre el tuyo usando una emergente o window.open, las dos ventanas normalmente pueden mantener una referencia mutua. Ese vínculo puede abusarse: la que abre puede manipular o redirigir tu ventana, leer fragmentos de su URL y montar un phishing convincente usando tu dominio real. COOP: same-origin rompe esa relación: tu ventana queda aislada de cualquier cosa que la abriera desde otro origen. La navegación normal, tus enlaces internos y la navegación corriente no se ven afectados en absoluto.

Cómo es lo «bueno»: Cross-Origin-Opener-Policy: same-origin.

CORP — Cross-Origin-Resource-Policy (segura, recomendada)

Por defecto, tus imágenes, scripts y demás archivos pueden ser incrustados por cualquier sitio en cualquier parte. CORP: same-origin indica a los navegadores que rechacen la incrustación de origen cruzado de tus recursos, de modo que otros sitios no puedan enlazar directamente (hotlink) tus recursos ni arrastrarlos a sus páginas. Tu propio sitio sigue cargando sus propios recursos exactamente como antes; solo se bloquea a los sitios externos.

Cómo es lo «bueno»: Cross-Origin-Resource-Policy: same-origin. (Si publicas recursos a propósito para que otros los incrusten —un logotipo público, una API abierta—, tu desarrollador puede relajar esto en esas respuestas concretas.)

COEP — Cross-Origin-Embedder-Policy (avanzada, normalmente déjala apagada)

COEP completa el «aislamiento de origen cruzado»: combinada con COOP, exige que cada recurso que tu página carga se sume explícitamente (vía CORS o CORP). Bien hecho, esto desbloquea ciertas funciones de navegador potentes (como SharedArrayBuffer) y añade otra capa contra los ataques de la familia Spectre. Pero como exige el consentimiento de todo lo que cargas, rompe con facilidad herramientas de terceros —analítica, fuentes, widgets incrustados— que no se construyeron para sumarse. La mayoría de los sitios web no necesitan las funciones que desbloquea y no deberían cargar con el riesgo de rotura.

Cómo es lo «bueno»: para el raro sitio que la necesita, Cross-Origin-Embedder-Policy: credentialless, el valor más seguro, con menos probabilidad de romper recursos externos que require-corp. Para todos los demás, estar ausente está bien, y nuestro informe no te penalizará por ello.

Cómo solucionarlo (gratis, ~15 minutos)

Pásale esto a tu informático o a tu desarrollador web: la solución es gratuita. Añadir COOP y CORP son un par de ajustes de una línea en tu servidor o CDN; no hay licencia ni coste continuo. La única instrucción para el dueño es: haz las dos seguras y no actives COEP sin probarla.

Son cabeceras de respuesta, que se ponen donde se produzcan las respuestas de tu sitio: lo más fácil en tu CDN (p. ej. Cloudflare) si tienes uno, si no en la configuración de tu servidor web.

Las dos cabeceras seguras (recomendadas para todos)

Cloudflare — Rules → Transform Rules → Modify Response Headers → Set:

Nginx:

add_header Cross-Origin-Opener-Policy   "same-origin" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;

Apache:

Header always set Cross-Origin-Opener-Policy   "same-origin"
Header always set Cross-Origin-Resource-Policy "same-origin"

Son seguras de añadir y no romperán el funcionamiento normal. Tras el despliegue, recarga unas cuantas páginas y confirma que el sitio se comporta exactamente como antes (debería).

La cabecera avanzada (solo si la necesitas específicamente)

No la actives sin probar primero en un entorno de pruebas. COEP puede romper la analítica, las fuentes y los widgets incrustados.

Cloudflare: Transform Rules → Set Cross-Origin-Embedder-Policy = credentialless.

Nginx:

add_header Cross-Origin-Embedder-Policy "credentialless" always;

Usa credentialless en lugar de require-corp: es menos probable que rompa recursos externos. Prueba a fondo en el entorno de pruebas; vigila cualquier script, fuente o elemento incrustado de terceros que deje de cargarse. Si algo se rompe y en realidad no necesitas las funciones que COEP desbloquea, simplemente quita la cabecera: no hay penalización por no tenerla.

Notas por plataforma

Errores habituales

Una nota sobre la nota

Para ser del todo claros: ninguna de estas tres comprobaciones afecta a tu nota. Están registradas en nuestra metodología como informativas, con cero puntos, y una que falte nunca te cuesta nada. Las mostramos porque las dos seguras son mejoras baratas y genuinas y porque ver el cuadro completo es útil, no porque haya un número que defender. Si no haces nada aquí, tu nota es exactamente la misma. Si añades COOP y CORP, has cerrado un par de huecos reales (aunque de nicho) gratis. Esa es la forma correcta de pensar en esta página: pulido opcional, con una trampa claramente etiquetada que hay que evitar.

Preguntas frecuentes

Estas no afectan a mi nota, ¿debería molestarme siquiera?

Dos de ellas, sí; una, probablemente no. COOP y CORP son gratuitas, llevan minutos y no romperán tu sitio: cierran vías de ataque reales (aunque de nicho), así que merecen hacerse como higiene barata. COEP es avanzada y puede romper herramientas de terceros, así que la mayoría de las empresas deberían dejarla apagada salvo que necesiten específicamente las funciones de navegador que desbloquea. Ninguna de las tres cambia tu puntuación en ningún sentido, así que no hay urgencia: trata las dos seguras como un repaso la próxima vez que tu desarrollador toque el sitio.

No soy una persona técnica, ¿es esto algo que tenga que accionar?

No personalmente, y no con urgencia. Como son informativas, no le pasa nada malo a tu nota si te las saltas. Si quieres añadir las dos seguras, pásale el apartado «Cómo solucionarlo» a quien gestione tu sitio web o tu CDN: son un par de ajustes de una línea y la solución es gratuita. La única que conviene señalar de forma explícita es COEP: diles que no la activen sin probar, porque puede romper la analítica y los widgets incrustados.

¿Qué diferencia hay entre estas y las cabeceras que SÍ afectan a mi nota?

Las cabeceras de seguridad web puntuadas —redirección a HTTPS, HSTS, Content-Security-Policy, protección contra clickjacking (X-Frame-Options) y protección contra adivinación MIME— defienden contra ataques comunes y muy explotados, así que que falten cuesta puntos. Las tres de esta página (COOP, CORP, COEP) son controles de aislamiento del navegador más nuevos y especializados. Son buena práctica pero todavía no una expectativa básica, así que informamos de ellas sin puntuarlas. Haz primero las puntuadas; estas son el pulido encima.

¿Añadir COOP o CORP romperá mi sitio web o las integraciones de mis socios?

Los ajustes recomendados (ambos «same-origin») están diseñados para ser seguros. COOP solo corta el vínculo con las ventanas que tu sitio abre en emergentes: la navegación normal, tus propias páginas y los enlaces corrientes no se ven afectados. CORP solo impide que *otros* sitios incrusten tus imágenes y scripts; tu propio sitio carga sus propios recursos exactamente como antes. Si de verdad sirves recursos (como un logotipo público o una API) que otros sitios deben incrustar, tu desarrollador puede usar un ajuste más permisivo en esas respuestas concretas. La que sí arriesga roturas es COEP: déjala apagada salvo que la hayas probado.

¿Qué me cuesta el «hotlinking», en realidad?

Cuando otro sitio incrusta tu imagen o script directamente desde tu servidor en lugar de alojar su propia copia, cada visitante de su página lo descarga de ti, a costa de tu factura de ancho de banda, y mostrando tu recurso en un contexto que no aprobaste. Para una empresa pequeña rara vez es catastrófico, pero es dinero gratis tirado a la basura, y CORP («same-origin») lo detiene a nivel de navegador. También cierra una vía sutil de fuga de datos en la que se apoyan los ataques avanzados de navegador (de la familia Spectre).

¿Cómo es lo «bueno» para cada una de estas?

COOP: una cabecera Cross-Origin-Opener-Policy con valor «same-origin». CORP: una cabecera Cross-Origin-Resource-Policy con valor «same-origin». COEP: una cabecera Cross-Origin-Embedder-Policy; y si la pones, «credentialless» es un valor más seguro que «require-corp». Nuestro informe simplemente anota si cada una está presente y en qué valor; nunca te penaliza por una que falte. Aspira a tener COOP y CORP presentes; deja COEP ausente salvo que la hayas probado.