Skip to content

security(indexer): límite de 64KB en cuerpos de request + timeouts anti-slowloris #236

Description

@David1984TK

Descripción

Categoría: Ciberseguridad (hardening anti-DoS)

readBody acumulaba el cuerpo del request sin límite: un solo cliente podía agotar la memoria del indexer mandando un JSON gigante. Además el server HTTP no tenía timeouts explícitos contra conexiones que gotean bytes (slowloris).

Cambios

  • bimex-indexer/api.js:
    • readBody ahora aborta con 413 al superar MAX_BODY_BYTES (64KB por defecto, configurable por env) y destruye la conexión.
    • server.headersTimeout = 30s y server.requestTimeout = 60s. No afectan a /sse: aplican a la recepción del request, no a la respuesta en streaming.

Verificación

  • npx vitest run pasa sin errores (indexer: 38/38)
  • npm run test:run frontend (no aplica, no se tocó)
  • cargo test (no aplica, no se tocó el contrato)

Notas para el revisor

Los endpoints actuales usan payloads de <1KB, así que 64KB da margen de sobra. El endpoint de subida IPFS del PR #217 usa su propio lector con límite mayor (15MB), en un módulo separado — ambos PRs son independientes y compatibles.

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