Activar o desactivar el acceso a internet
Al crear una sandbox, puedes usar el parámetroallowInternetAccess / allow_internet_access para configurar la conectividad a internet. El acceso a internet está activado de forma predeterminada, pero puede desactivarse para cargas de trabajo con requisitos de seguridad más estrictos.
Pasar un valor falsy a
allowInternetAccess / allow_internet_access tiene el mismo efecto que añadir ['0.0.0.0/0'] a network.denyOut / network.deny_out, lo que bloquea todos los destinos.Control de red detallado
La configuración de red proporciona un control más detallado sobre el tráfico saliente al permitirte definir listas de permitidos y listas de bloqueados.Listas de permitidos y bloqueados
Se pueden especificar direcciones IP, bloques CIDR o nombres de dominio a los que la sandbox tiene permitido acceder.El CIDR
'0.0.0.0/0' / "0.0.0.0/0" es una abreviatura de “todos los destinos”. Una constante exportada ALL_TRAFFIC se resuelve al mismo valor 0.0.0.0/0 si prefieres una alternativa con nombre en lugar del literal.Filtrado basado en dominio
Puedes especificar nombres de host enallowOut / allow_out para permitir tráfico saliente a dominios seleccionados. Cuando el filtrado basado en dominio está activado, todo el tráfico restante debe bloquearse mediante denyOut / deny_out. Las entradas de dominio solo se admiten en listas de permitidos y no pueden usarse en listas de bloqueados.
Siempre que aparezca un dominio en la configuración, el servidor de nombres predeterminado
8.8.8.8 se permite automáticamente para que la resolución DNS siga funcionando.El filtrado por dominio se aplica solo a HTTP sobre el puerto 80 (inspeccionado mediante el encabezado Host) y TLS sobre el puerto 443 (inspeccionado mediante SNI). Cualquier otro puerto recurre a la coincidencia basada en CIDR, y los protocolos UDP como QUIC/HTTP3 no pueden filtrarse por dominio.
Cómo se comportan las conexiones TCP bloqueadas
Debido a la arquitectura del firewall, una conexión saliente bloqueada puede seguir pareciendo exitosa desde dentro de la sandbox. El firewall primero debe aceptar la conexión TCP antes de poder evaluar si el destino de destino está permitido. Como resultado, el código que se ejecuta dentro de la sandbox puede ver que la conexión se realiza correctamente y que el socket se abre, incluso si el destino está bloqueado. En ese caso, no se entrega realmente ningún tráfico al endpoint remoto. Para confirmar que el destino es alcanzable, valida una respuesta a nivel de aplicación en lugar de depender únicamente del éxito de la conexión TCP. Por ejemplo, comprueba un código de estado HTTP, un handshake TLS completado o los bytes de respuesta esperados del protocolo. Este comportamiento es una limitación actual de cómo se enruta el tráfico saliente de la sandbox a través de nuestro firewall y puede actualizarse en el futuro.Reglas de prioridad
Si se configuran reglas de permitir y bloquear, las reglas de permitir tienen prioridad. Por lo tanto, cualquier dirección IP que aparezca en ambas listas seguirá estando permitida.network solo surte efecto cuando se crea la sandbox: proporciónala a Sandbox.create. Una vez que la sandbox existe, queda fija y no puede modificarse.
URL pública de la sandbox
Se puede acceder a los servicios de una sandbox usando la URL pública de la sandbox.Conectarse a un servidor que se ejecuta dentro de la sandbox
Puedes conectarte a un servidor que se ejecuta dentro de la sandbox usando el método descrito anteriormente; por ejemplo, inicia un servidor HTTP ligero en el puerto 3000 para servir archivos desde su directorio de inicio.Enmascarar encabezados Host de solicitudes
Puedes usar la opciónmaskRequestHost / mask_request_host para personalizar el encabezado Host enviado a los servicios que se ejecutan dentro de la sandbox. Esto es útil cuando tu aplicación espera que las solicitudes sigan un formato de host específico.
${PORT} en la máscara se sustituye por el número de puerto real del servicio al que se está dirigiendo.