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 de posibles ataques, como la falsificación de solicitudes entre sitios (CSRF). Chrome ha implementado la PNA de forma gradual y se ampliará la protección en las próximas versiones.

Protecciones de PNA clave (con su estado actual)

  • Contextos seguros: Solo se permite que los contextos seguros realicen solicitudes de subrecursos de redes privadas (aplicadas 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 de verificación preliminar antes de las solicitudes de subrecursos de 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: Presentamos las solicitudes preliminares. A partir de Chrome 123, Chrome omitirá algunos encabezados de CORS, como Accept, si la solicitud preliminar solo se crea y envía debido a PNA.
  • Exenciones del mismo origen: A partir de Chrome 115, las solicitudes del mismo origen que provengan de orígenes potencialmente confiables están exentas de 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:

  • Recuperar secuencias de comandos de trabajador: Requiere contextos seguros y solicitudes preliminares para direcciones IP menos públicas. Hay advertencias desde Chrome 110 y se aplicarán en Chrome 130.
  • Recuperaciones iniciadas por secuencias de comandos del trabajador: Todas las recuperaciones de las secuencias de comandos del trabajador 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 Navigation

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

A partir de Chrome 124, puedes probar la aplicación de las siguientes maneras:

  • 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 manualmente y permitirla.

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 de forma manual 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 de forma manual y permitir la solicitud.

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

La entrada Acceso a redes privadas: presentación de las solicitudes preliminares incluye orientación. Es importante destacar que, para las solicitudes de navegación, ten en cuenta lo siguiente:

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

Próximos pasos

  • WebSockets: A partir de Chrome 126, la PNA cubrirá 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 que anula la PNA para 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 recibir tus comentarios. Informa un problema en el seguimiento de problemas de Chromium (componente: Blink>SecurityFeature>CORS>PrivateNetworkAccess).

Foto de Jakub ALdezicki en Unsplash