Camofox Browser
Proteger Camofox: acceso global, propiedad de estado, red y telemetría
Comprende las claves reales, evita exponer un navegador sin autenticación e inventaría perfiles, trazas, subidas y reportes de fallo.
Qué aprenderás
- API key y clave global protegen ámbitos diferentes.
- Validar HTTP/HTTPS no sustituye una política de salida.
- Perfiles, trazas y telemetría requieren retención explícita.
Antes de empezar
- HTTP y JSON básicos
- Servicio aislado y página propia o permitida
Explica la frontera real del servicio y verifica la muestra de observación o ciclo propuesta.
Conclusiones clave
- API key y clave global protegen ámbitos diferentes.
- Validar HTTP/HTTPS no sustituye una política de salida.
- Perfiles, trazas y telemetría requieren retención explícita.
La clave global y las rutas sensibles son controles distintos
lib/auth.js implementa CAMOFOX_ACCESS_KEY global y requireAuth para rutas sensibles. Sin clave global, su middleware deja pasar por compatibilidad. Por tanto, configurar solo CAMOFOX_API_KEY no debe describirse como proteger automáticamente todo el servicio. Revisa cobertura, configura la frontera global y mantén escucha privada salvo apertura remota deliberadamente asegurada.
El auxiliar por ruta acepta API key o access key configurada. Sin ambas, solo permite loopback del socket fuera de producción; en otros casos rechaza. La capa global tiene excepciones explícitas como salud y rutas con claves dedicadas. Conviértelas en pruebas de aceptación. Un secreto Bearer compartido tampoco define propiedad por usuario para userId suministrados por el cliente.
Navegar es una capacidad de red
validateUrl revisado analiza la URL y admite HTTP o HTTPS. No es lista de destinos permitidos, política DNS ni protección completa de redes privadas. Un servicio remoto requiere destinos y salida restringidos fuera de ese auxiliar estrecho, con pruebas de redirecciones y recursos en tu entorno. Empezar por https no demuestra seguridad.
Cookies, perfiles persistentes, subidas, descargas y trazas crean fronteras adicionales. La configuración distingue directorios para varios artefactos. Concede solo acceso de archivos necesario, protege secretos adecuadamente y define borrado y copias por artefacto. No importes el estado de cuentas de un navegador personal solo para rellenar una demostración.
Los diagnósticos también tratan datos
El reporte de fallos está activo salvo que CAMOFOX_CRASH_REPORT_ENABLED sea exactamente la cadena false en la configuración revisada. El reportero envía mediante un relay y aplica redacción y hashes de dominios. Reducen exposición, pero no prueban que todo diagnóstico sea inocuo. Decide antes de procesar páginas privadas; el ejemplo local lo desactiva explícitamente.
Las trazas de sesión se habilitan aparte y pueden incluir capturas, DOM y red. La creación de pestaña revisada devuelve conflicto al pedir trazas sobre una sesión existente sin ellas, en vez de activarlas silenciosamente. Prepara una sesión de prueba aislada; no borres historia activa para forzar la demostración. No se importaron credenciales ni se accedió a cuentas o endpoints de producción en esta revisión.
Pasos de implementación
- 1
Verifica rechazo de rutas ordinarias no autorizadas.
- 2
Impón propiedad de userId y destinos permitidos.
- 3
Inventaría directorios, copias y retención de trazas.
- 4
Decide reportes antes de visitar contenido privado.
Ejemplo para copiar
{
"globalAccessGate": "obligatorio",
"userIdOwnership": "impuesta en frontera del cliente",
"allowedDestinations": "solo muestras propias",
"crashReporting": "desactivado en prueba privada",
"trace": false,
"credentialsImported": false
}Preguntas frecuentes
¿CAMOFOX_API_KEY protege todas las rutas?
No lo presupongas. Existe un middleware global separado que deja pasar cuando falta su clave.
¿Validar la URL bloquea cualquier destino peligroso?
No. El auxiliar restringe esquemas; destinos y red requieren una política más amplia.
Fuentes
- README.mdFuente verificada 2026-09-08
- package.jsonFuente verificada 2026-09-08
- DockerfileFuente verificada 2026-09-08
- lib/auth.jsFuente verificada 2026-09-08
- lib/snapshot.jsFuente verificada 2026-09-08
- lib/extract.jsFuente verificada 2026-09-08
- lib/config.jsFuente verificada 2026-09-08
- lib/reporter.jsFuente verificada 2026-09-08
- lib/page-lease.jsFuente verificada 2026-09-08
- server.jsFuente verificada 2026-09-08
- tests/unit/snapshot.test.jsFuente verificada 2026-09-08
- tests/unit/auth.test.jsFuente verificada 2026-09-08