Informe de Seguridad — NutriFlow API v2.0
Escaneo estático con Semgrep · 11 hallazgos en 847 líneas analizadas · 5 reglas personalizadas + rulesets OWASP
main.
| Regla | Sev. | Hits | CWE |
|---|---|---|---|
| raw-sql-with-user-input | ERROR | 3 | CWE-89 |
| hardcoded-secret | ERROR | 2 | CWE-798 |
| missing-auth-middleware | ERROR | 2 | CWE-306 |
| dangerous-html | ERROR | 1 | CWE-79 |
| missing-rel-noopener | WARN | 3 | CWE-1022 |
| console-log-sensitive | WARN | 2 | CWE-532 |
| no-eval | INFO | 0 | CWE-95 |
Revocar secrets inmediatamente
La API key de Stripe detectada debe revocarse en el dashboard de Stripe AHORA, incluso antes de hacer el fix en código. Asumir que la clave está comprometida.
Crítico — HoyParametrizar todas las queries SQL
Reemplazar las 3 instancias de SQL concatenado por consultas parametrizadas. Ejecutar semgrep --fix para aplicar los auto-fixes generados.
Middleware de autenticación global
Aplicar authMiddleware a nivel de router en lugar de endpoint por endpoint. Añadir test de integración que verifique 401 en cada ruta protegida.
Sanitizar HTML con DOMPurify
Instalar DOMPurify y envolver todos los usos de dangerouslySetInnerHTML. Crear un componente SafeHtml reutilizable para el equipo.
Secretos en variables de entorno
Migrar todos los secretos a .env + GitHub Secrets. Añadir .env al .gitignore. Usar dotenv en desarrollo y Secrets Manager en producción.
Semgrep Cloud Dashboard
Activar Semgrep Cloud (plan gratuito) para tracking histórico, triage de falsos positivos y métricas de deuda de seguridad a lo largo del tiempo.
Medio — 1 semana