Tenemos un entorno de prueba en un sitio público. Allí usamos el indicador --disable-web-security en Chrome para que los evaluadores eludan los errores de CORS para las llamadas de servicio público durante la fase de prueba manual. Y también tenemos solicitudes de host local en la máquina del agente. Sin embargo, hoy, con la actualización de Chrome 98, comenzamos a tener problemas con las solicitudes de red dirigidas a localhost.
El error que recibimos es para las solicitudes de localhost de un sitio público:
Access to XMLHttpRequest at 'https://localhost:3030/static/first.qjson' from origin 'https://....com' has been blocked by CORS policy: Request had no target IP address space, yet the resource is in address space `local`.
El sitio en localhost está configurado para devolver encabezados de Access-Control-Allow-* CORS que incluyen "Access-Control-Allow-Private-Network: true".
Y tampoco veo ninguna solicitud de verificación previa. Solo una solicitud GET con error CORS.
Sospechamos que esto podría ser un efecto secundario causado cuando deshabilita la seguridad web mediante --disable-web-security. Podría estar impidiendo la obtención del espacio de direcciones IP de destino. Nuestra suposición se basa en la sección de verificación previa de CORS en https://wicg.github.io/private-network-access/
3.1.2. Vuelo previo de CORS
El algoritmo de obtención de HTTP debe ajustarse para garantizar que se active una verificación previa para todas las solicitudes de red privada iniciadas desde contextos seguros.
El problema principal aquí es nuevamente que el espacio de direcciones IP de la respuesta no se conoce hasta que se obtiene una conexión en la recuperación de red HTTP, que se superpone bajo la recuperación de verificación previa de CORS.
Entonces, ¿alguien sabe alguna solución para el acceso a la red privada con el indicador --disable-web-security? O tal vez nos estamos perdiendo algo. Gracias por la ayuda.
Los pasos a continuación pueden ayudar a resolver el problema en Chrome 98, para otros navegadores como Edge, debe hacer lo mismo que Chrome.
Solicitud con la versión 98 de Chrome. Debe seguir los siguientes pasos: - Ejecute este comando en la terminal
defaults write com.google.Chrome InsecurePrivateNetworkRequestsAllowed -bool true
Reinicie su navegador, no funciona, luego reinicie su máquina
para los usuarios de Linux, debe crear un archivo de política en esta ruta:
mkdir -p /etc/chromium/policies/managed # for chrome you should change the path to this # /etc/opt/chrome/policies/managedy luego cree un nuevo archivo json para políticas:
cd /etc/chromium/policies/managed touch dev_policy.jsony poner este contenido en él:
{ "InsecurePrivateNetworkRequestsAllowed": 1 }para cromo:
{ "InsecurePrivateNetworkRequestsAllowed": true }eso es todo, la próxima vez que inicie Chrome en su máquina, cargará estas nuevas políticas.
ps puede verificar si las políticas están cargadas correctamente aquí: chrome://policy/