Skip to content

security(frontend): ocultar el origen del indexer con proxy same-origin /api + CSP endurecido [P2] #251

Description

@David1984TK

Descripción

Categoría: Ciberseguridad — Prioridad 2 (ocultar la dirección del API)

Cada request del navegador (GET/POST/SSE) exponía el origen real del indexer. Con un rewrite de Vercel, el sitio puede servir el API bajo su propio dominio (bimex.mx/api/...): el proxy hacia el indexer ocurre del lado del servidor y la dirección real del backend desaparece del tráfico del navegador.

Nota honesta de alcance: los paths (/api/proyectos, /api/faucet) siguen siendo visibles en DevTools — eso es inherente a cualquier app web; lo que se oculta es el host real del backend, que es lo accionable.

Cambios

  • bimex-frontend/vercel.json:
    • Rewrite /api/:path* → indexer (host placeholder TU-INDEXER.example.com a reemplazar al activar).
    • CSP: se agrega upgrade-insecure-requests — cualquier subrecurso http:// accidental se eleva a HTTPS antes de salir del navegador (endurecimiento de URL del sitio).
  • bimex-frontend/.env.example: instrucciones para producción (VITE_INDEXER_URL=/api). No requiere cambios de código: todos los consumidores (REST, SSE, subida IPFS del 🔒 security: mover subida a Pinata a proxy backend, quitar secret del bundle #217) ya construyen URLs desde esa env var, y connect-src 'self' del CSP cubre rutas relativas.

Verificación

  • vercel.json validado como JSON
  • Sin cambios de código ejecutable — el rewrite es opt-in vía env var; hasta activarlo todo sigue funcionando como hoy
  • Tests (no aplica)

Notas para el revisor

Activación (2 pasos, cuando gustes): (1) reemplazar el host placeholder del rewrite por el host real del indexer, (2) poner VITE_INDEXER_URL=/api en las env vars de Vercel. Beneficio extra: se puede endurecer el CORS del indexer para aceptar solo el proxy. Caveat conocido: SSE a través del proxy de Vercel tiene límites de duración de conexión — si molesta en la práctica, /sse puede quedarse apuntando directo y el resto pasar por /api.

Sobre "URL del sitio más segura": HSTS con preload ya está configurado desde #111. Dos pasos manuales que no puedo hacer desde aquí: enviar el dominio a hstspreload.org y verificar en el dashboard de Vercel que el dominio canónico redirige (www → apex, http → https).

Metadata

Metadata

Assignees

Labels

Stellar WaveIssue incluido en el Stellar Wave Program de Drips

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions