Sécurité des dépendances
Règles
- Exécutez
npm audit dans CI — échouez la construction en cas de vulnérabilités hautes/critiques
- Utilisez
lockfile-lint pour vérifier que tous les packages pointent vers le registre npm officiel
- Verrouillez les versions majeures dans
package.json : utilisez ^ pour les mises à jour mineures, jamais * ou latest
- Examinez les nouvelles dépendances avant de les installer : vérifiez les téléchargements npm, la date de dernière publication, le nombre de mainteneurs
- Utilisez
npm ls --all pour auditer les dépendances transitives — vos dépendances directes en tirent des centaines d'autres
- Configurez Snyk, Socket.dev ou GitHub Dependabot pour les alertes de vulnérabilités en temps réel
- Mettez à jour les dépendances chaque semaine — les dépendances obsolètes accumulent des vulnérabilités connues
- name: Auditer les dépendances
run: npm audit --audit-level=high
- name: Vérifier l'intégrité du lockfile
run: npx lockfile-lint --path package-lock.json --type npm --allowed-hosts npm --validate-https
{
"dependencies": {
"next": "^14.0.0",
"react": "^18.0.0",
"zod": "^3.0.0"
}
}
À éviter
npm install random-package sans vérifier d'abord le package — l'typosquatting est réel
- Ignorer les avertissements
npm audit — les vulnérabilités connues sont le vecteur d'attaque le plus facile
- Utiliser
* ou latest comme plages de versions — une publication compromise frappe immédiatement votre construction
- Exécuter des scripts
postinstall provenant de packages non fiables sans vérification
- Présumer que les packages populaires sont sûrs — même
event-stream (des millions de téléchargements) a été compromis