Desarrollador Node.js: pregunta de entrevista
¿Cómo proteges una API Node.js?
Protege una API Node.js con validación de esquema, autorización en servidor, sesiones o tokens seguros, acceso parametrizado, rate limits, payloads acotados, dependencias actualizadas, cabeceras y secretos fuera del código.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
Cada cuerpo, query y cabecera se valida contra un esquema antes de que el código de negocio lo vea, eliminando campos desconocidos y acotando tamaños para que un payload grande no agote la memoria. La autenticación usa bibliotecas contrastadas y tokens de corta vida o cookies HttpOnly; la autorización se comprueba en cada acceso a recurso. El acceso a datos usa consultas parametrizadas o un ORM que lo hace. Límites de tasa y timeouts protegen contra abuso y ataques tipo slowloris, las cabeceras de seguridad se fijan con helmet o equivalente, las dependencias se auditan y actualizan con un calendario, y los secretos llegan del entorno o de un vault y no del repositorio.
Ejemplo
Una API valida cada ruta con un esquema zod, rechaza cuerpos de más de 1 MB en el parser, comprueba que quien llama es dueño del ID de proyecto en cada ruta de proyecto, usa pg con marcadores $1, aplica un limitador por token en Redis y ejecuta npm audit más un bot de actualización del lockfile cada semana. Un hallazgo de prototype pollution en una dependencia de fusión anidada lo atrapó la auditoría antes de llegar a producción.
Errores frecuentes
- Confiar en campos de req.body directamente en una consulta o una ruta de fichero.
- Guardar JWTs en localStorage donde cualquier XSS puede leerlos.
- Fijar una dependencia antigua con una vulnerabilidad conocida porque actualizar es incómodo.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.