Inspección de código con SonarQube: resultados y correcciones - SebaUSM/GRUPO02-2025-PROYINF GitHub Wiki
1. Descripción general
En esta sección se documenta la inspección de calidad de código realizada con SonarQube, enfocada en identificar y corregir issues relevantes en una sección significativa del proyecto. Se incluyen capturas, descripciones de problemas detectados, su severidad, y las acciones correctivas aplicadas.
2. Configuración de la inspección
- Herramienta utilizada: SonarQube
- Sección inspeccionada:
Security
- Fecha de ejecución:
21/06/2025
- Versión del proyecto analizada:
1.0
3. Quality Issue #1
Descripción del issue
- Tipo:
Security
- Descripción: Uso de una contraseña codificada directamente en el archivo fuente, lo que representa una vulnerabilidad crítica de seguridad, especialmente si el repositorio es compartido o público.
- Severidad:
Blocker
Captura
Corrección aplicada
- Archivo modificado:
knexfile.js
- Línea/s afectada/s:
Línea 29
- Cambio realizado: Se eliminó la contraseña escrita directamente en el código y se reemplazó por el uso de una variable de entorno: password: process.env.DB_PASSWORD
4. Quality Issue #2
Descripción del issue
- Tipo:
SQL Injection
- Descripción: Uso de una consulta SQL construida dinámicamente con interpolación de variables (${tabla}), lo cual puede ser riesgoso si no se validan adecuadamente las entradas. Esta práctica incrementa el riesgo de inyecciones SQL si se usan valores no confiables.
- Severidad:
Blocker
Captura
Corrección aplicada
- Archivo modificado:
public/js/backup.js
- Línea/s afectada/s:
Línea 33
- Cambio realizado: Se reemplazó la consulta construida con interpolación por una consulta parametrizada utilizando variables seguras. Ejemplo: pgcon.query('SELECT name FROM users WHERE id = $1', [userinput], (err, res) => {});
5. Resultados posteriores a la corrección
- Nueva inspección ejecutada:
Sí
- Issues pendientes:
Errores menores
los cuales fueron revisados como falsos positivos o no de gran relevancia. - Mejoras observadas: Se solucionaron problemas de seguridad que afectaban a la encriptación de contraseñas y posibles injections SQL.
- Capturas de la corrección:
6. Evidencia versionada
- Las capturas y resultados están versionados en la carpeta:
/inspections/
7. Reflexión
Se observa que a medida que el sistema se va complejizando, los errores se vuelven más comunes, por lo que es importante estar constantemente actualizando el código para cumplir con los nuevos parámetros de seguridad.