Acceso a red privada: Protección extendida para trabajadores web y recuperaciones de navegación

Jonathan Hao
Jonathan Hao

¿Qué es el Acceso a redes privadas?

El Acceso a la red privada (PNA, antes conocido como CORS-RFC1918 y, brevemente, Acceso a la red local) es una función de seguridad que restringe la capacidad de los sitios web para enviar solicitudes a servidores en redes privadas. Esto ayuda a proteger a los usuarios y las redes internas de posibles ataques, como la falsificación de solicitudes entre sitios (CSRF). Chrome ha ido implementando gradualmente PNA, y la protección se ampliará en las próximas versiones.

Protecciones clave de PNA (con su estado actual)

  • Contextos seguros: Solo los contextos seguros pueden realizar solicitudes de subrecursos de red privada (aplicadas a partir de Chrome 94). Consulta nuestra publicación de actualización sobre el acceso a redes privadas para obtener más detalles.
  • Solicitudes preliminares: Chrome envía solicitudes preliminares antes de las solicitudes de subrecursos de la red privada para verificar los permisos del servidor (advertencias en Herramientas para desarrolladores sobre fallas desde Chrome 104, que se aplicarán en Chrome 130). Esto se describió en Acceso a redes privadas: Presentación de las comprobaciones preliminares. A partir de Chrome 123, Chrome omitirá algunos encabezados de CORS, como Accept, si la solicitud preliminar solo se crea y se envía debido a PNA.
  • Exenciones del mismo origen: A partir de Chrome 115, las solicitudes del mismo origen de orígenes potencialmente confiables están exentas de las restricciones de PNA.

Protección extendida: Trabajadores web

La protección de PNA se extenderá a los web Workers (trabajadores dedicados, trabajadores compartidos y service worker). Esto incluye:

  • Recuperación de secuencias de comandos de trabajador: Requiere contextos seguros y comprobaciones preliminares para direcciones IP menos públicas. Advertencias desde Chrome 110, se aplicarán en Chrome 130.
  • Recuperaciones iniciadas por secuencias de comandos de trabajadores: Todas las recuperaciones desde secuencias de comandos de trabajadores siguen las mismas reglas de PNA.

A partir de Chrome 124, puedes probar la aplicación siguiendo estos pasos:

  • Inhabilitar chrome://flags/#private-network-access-ignore-worker-errors
  • Habilitar chrome://flags/#private-network-access-respect-preflight-results

Protección extendida: Recuperaciones de navegación

El PNA también se aplica a recuperaciones de navegación (iframes, ventanas emergentes) debido a su posible uso en ataques de CSRF. Chrome 123 comenzó a mostrar advertencias por fallas, y se planea que la aplicación se realice en Chrome 130.

A partir de la versión 124 de Chrome, puedes probar la aplicación forzosa de la siguiente manera:

  • Inhabilitar chrome://flags/#private-network-access-ignore-navigation-errors
  • Habilitar chrome://flags/#private-network-access-respect-preflight-results

Cuando PNA bloquea una solicitud de navegación, los usuarios verán un error específico con la opción de volver a cargar la página manualmente y permitir la solicitud.

Cuando PNA bloquea una solicitud de navegación, los usuarios verán un error específico con la opción de volver a cargar la página manualmente y permitir la solicitud.
Cuando PNA bloquea una solicitud de navegación, los usuarios verán un error específico con la opción de volver a cargar la página manualmente y permitir la solicitud.

¿Qué debes hacer si tu sitio web se ve afectado?

La entrada Acceso a la red privada: Presentación de las comprobaciones preliminares incluye orientación. Es importante destacar que, para las solicitudes de navegación, sucede lo siguiente:

  • Access-Control-Allow-Origin no puede ser un comodín ("*").
  • Access-Control-Allow-Credentials debe configurarse como "true".

¿Qué sigue?

  • WebSockets: A partir de Chrome 126, la PNA abarcará los protocolos de enlace de WebSocket (primero las advertencias).
  • Aplicación total: Todas las restricciones de PNA se aplicarán (bloqueando las solicitudes que no cumplan con las políticas) de manera provisoria en Chrome 130. Los usuarios tendrán una configuración de sitio que anula la PNA para los sitios de confianza.

Comentarios sobre casos de uso de redes privadas

Si alojas un sitio web en una red privada que necesita solicitudes de redes públicas, el equipo de Chrome quiere conocer tus comentarios. Informa un problema en la Herramienta de seguimiento de errores de Chromium (componente: Blink>SecurityFeature>CORS>PrivateNetworkAccess).

Foto de Jakub Compartirerdzicki en Unsplash