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 redes privadas (PNA, antes conocido como CORS-RFC1918 y, de forma breve, acceso a redes locales) 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 contra posibles ataques, como la falsificación de solicitudes entre sitios (CSRF). Chrome ha estado implementando gradualmente la PNA, y la protección se expandirá 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 (aplicable a partir de Chrome 94). Consulta nuestra entrada de actualización de Acceso a la red privada para obtener más información.
  • Solicitudes preliminares: Chrome envía solicitudes preliminares antes de las solicitudes de subrecursos de red privada para verificar los permisos del servidor (advertencias en DevTools para fallas desde Chrome 104, que se aplicarán en Chrome 130). Esto se describió en Acceso a redes privadas: Presentamos las solicitudes preliminares. A partir de Chrome 123, Chrome omitirá algunos encabezados de CORS, como Accept, si la comprobación previa solo se crea y envía debido a PNA.
  • Exenciones de 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 la PNA se extenderá a los trabajadores web (trabajadores dedicados, trabajadores compartidos y trabajadores de servicio). Esto incluye lo siguiente:

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

A partir de Chrome 124, puedes probar la aplicación forzosa 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

La PNA también se aplica a las recuperaciones de navegación (iframes y ventanas emergentes) debido a su posible uso en ataques CSRF. Chrome 123 comenzó a mostrar advertencias de fallas, y se planificó la aplicación forzosa para Chrome 130.

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

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

Cuando la PNA bloquea una solicitud de navegación, los usuarios verán un error específico con la opción de volver a cargar la solicitud de forma manual y permitirla.

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

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

La publicación Acceso a redes privadas: presentamos las solicitudes preliminares incluye orientación. Es importante que, para las solicitudes de navegación, se cumpla lo siguiente:

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

Próximos pasos

  • WebSockets: De forma tentativa, a partir de Chrome 126, la PNA abarcará los protocolos de enlace de WebSocket (primero las advertencias).
  • Aplicación forzosa completa: Todas las restricciones de PNA se aplicarán de manera forzosa (se bloquearán las solicitudes que no cumplan con los requisitos) de forma provisional en Chrome 130. Los usuarios tendrán una configuración de sitio para anular la PNA en los sitios de confianza.

Comentarios sobre los 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 el seguimiento de problemas de Chromium (componente: Blink>SecurityFeature>CORS>PrivateNetworkAccess).

Foto de Jakub Żerdzicki en Unsplash