Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

250
Vistas
Uso del trabajador del servicio para habilitar los encabezados COOP/COEP: ¿preocupaciones de seguridad?

No puedo acceder a mi servidor para habilitar los encabezados COOP y COEP, pero pude agregarlos a través del trabajador de servicio usando el siguiente script https://github.com/gzuidhof/coi-serviceworker , que registra un trabajador de servicio que tiene los encabezados activos.

Necesito COOP y COEP para habilitar SharedArrayBuffer , que está restringido para evitar la vulnerabilidad de Spectre y Meltdown.

Mi pregunta es si agregar los encabezados https a través del trabajador del servicio representa un riesgo de seguridad, porque los encabezados no están configurados en el nivel del servidor.

Al final de este artículo, argumenta que esto no es un riesgo, https://dev.to/stefnotch/enabling-coop-coep-without-touching-the-server-2d3n

Pero agradecería una explicación para comprender mejor si el enfoque del trabajador del servicio es equivalentemente seguro o si deja vulnerabilidades abiertas.

¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Agregar esos encabezados a través de un trabajador de servicio es equivalente desde una perspectiva de seguridad y habilitará una funcionalidad equivalente. Sin embargo, hay algunas cosas a tener en cuenta:

  • Un trabajador del servicio no puede controlar una página de cliente durante la primera vez que un usuario navega a un sitio o después de una recarga de turno. Establecer estos encabezados a través del servidor web real es la única forma de garantizar que se aplicarán a esos escenarios. En términos generales, debe tener cuidado de degradar correctamente si hay funciones en su aplicación web principal que dependen de la presencia de un trabajador de servicio.

  • Hay una ligera sobrecarga involucrada en tener un trabajador de servicio controlando una página. Si estuviera respondiendo a las solicitudes yendo directamente a un caché local en lugar de a la red, eso normalmente superaría la sobrecarga. Dado que no parece que planee realizar ningún almacenamiento en caché en su trabajador de servicio, debe detectar funciones para las precargas de navegación y habilitarlas si es compatible. Esto mitigará el impacto potencial en el rendimiento.

  • Los encabezados solo deben configurarse en respuestas que pueden crear un cliente, como respuestas para documentos o trabajadores. Recomiendo verificar con su trabajador de servicio si el destino de la solicitud es o no para una de esas cosas antes de llamar a event.respondWith() . Esto ayudará a que su controlador de fetch funcione bien con cualquier otro controlador de fetch que también pueda estar registrado y que, por ejemplo, responda a solicitudes de subrecursos utilizando una estrategia de almacenamiento en caché. Algo como lo siguiente debería funcionar:

 self.addEventListener("fetch", (event) => { if (!["document", "iframe", "worker"].includes(event.request.destination)) { return; } event.respondWith(/* your logic here */); });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda