Sin Git Hooks de Seguridad
Sin hooks de pre-commit que escaneen en busca de secrets y problemas de seguridad, los desarrolladores pueden accidentalmente pushear API keys y contraseñas al repositorio.
Cómo Funciona
Los hooks de pre-commit corren antes de cada git commit. Un hook de escáner de secrets (Gitleaks, detect-secrets) verifica el diff en staging en busca de patrones que coincidan con API keys, contraseñas y tokens. Atrapa el error antes de que entre al historial de git — donde es permanente y visible para cualquiera con acceso al repo.
// MAL: sin hooks de pre-commit — los secrets pueden ser commiteados accidentalmente
// .git/hooks/ está vacío o no configurado
// package.json no tiene config de husky ni lint-staged// BIEN: hook de pre-commit que escanea en busca de secrets
// package.json
{
"lint-staged": {
"*": ["gitleaks protect --staged --no-banner"]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
}
}Ejemplo Real
La investigación de seguridad de GitHub de 2022 encontró que los incidentes de exposición de secrets donde los desarrolladores accidentalmente commitean API keys representan una porción significativa de todas las brechas basadas en credenciales — y la mayoría podría haber sido prevenida por escaneo de secrets en pre-commit.
Cómo Prevenirlo
- Instala Husky y configura un hook de pre-commit que corra Gitleaks o detect-secrets
- También configura tu CI para correr escaneo de secrets en cada push como respaldo
- Habilita el escaneo de secrets integrado de GitHub y la protección de push en todos los repositorios
- Agrega un archivo .gitleaksignore para suprimir falsos positivos sin desactivar el escáner
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Sin Archivo .env.example
lowSin un archivo .env.example, los nuevos colaboradores no saben qué variables de entorno se requieren, lo que lleva a soluciones inseguras como hardcodear valores.
Sin Linting de Seguridad
lowSin reglas de ESLint orientadas a seguridad, vulnerabilidades comunes como sinks XSS, dangerouslySetInnerHTML y uso de eval() pasan desapercibidas en code review.
.gitignore Inadecuado
mediumUn .gitignore que no cubre archivos .env, artefactos de build y configuraciones de IDE puede llevar a que secrets o datos sensibles sean accidentalmente commiteados.
npm Scripts Inseguros
mediumLos npm scripts que obtienen y ejecutan código remoto, o que incrustan secrets como argumentos de shell, son un riesgo de supply chain y exposición de credenciales.