Analyse de Sécurité OWASP Top 10
L'API présente un bon niveau de sécurité de base mais nécessite des ajustements pour la production.
Analyse Détaillée
A01 - Contrôle d'Accès Défaillant
Statut : PROTÉGÉ
- Authentification JWT robuste (15min TTL)
- Guards NestJS pour vérification permissions
- Principe du moindre privilège appliqué
- Tests : Utilisateurs ne peuvent accéder qu'à leurs données
A02 - Défaillances Cryptographiques
Statut : PROTÉGÉ
- Mots de passe hachés bcrypt et jamais en clair
- Tokens JWT sécurisés (15min TTL)
- HTTPS configuré via Helmet
A03 - Injection
Statut : PROTÉGÉ
- ORM Prisma (protection native SQL injection)
- ValidationPipe NestJS strict
- Requêtes paramétrées uniquement
- Tests : Tentatives d'injection SQL
A04 - Conception Non Sécurisée
Statut : PROTÉGÉ
- Architecture modulaire NestJS
- Gestion d'erreurs centralisée
- Logs de sécurité complets (Winston)
A05 - Mauvaise Configuration Sécurité
Statut : PROTÉGÉ
- Variables d'environnement sécurisées
- Headers de sécurité (Helmet) configurés
- CORS restrictif configuré
- Swagger désactivé en production (
NODE_ENV !== 'production'
) - Messages d'erreur masqués en production (
disableErrorMessages: true
)
A06 - Composants Vulnérables
Statut : PROTÉGÉ
- Dépendances récentes (2024-2025)
- Packages sécurisés (bcrypt, helmet, prisma)
- Audit npm disponible
A07 - Échecs d'Identification
Statut : PROTÉGÉ
- Rate limiting ThrottlerGuard (5 req/sec)
- Sessions JWT courtes (15min)
- Pas de comptes par défaut
- Tests : Brute force détecté et bloqué
A08 - Défaillances d'Intégrité
Statut : PROTÉGÉ
- ValidationPipe stricte avec DTOs
- Contraintes Prisma en base
- Audit trail via logs Winston
A09 - Défaillances Logging/Monitoring
Statut : PROTÉGÉ
- Logs Winston structurés
- DailyRotateFile pour rotation
- Événements sécurité tracés
- Sanitisation des logs (bcrypt, JWT)
A10 - Falsification Requêtes SSRF
Statut : PROTÉGÉ
- Pas de requêtes externes user-controlled
- Email SMTP fixe uniquement
- Isolation Docker
Tests de Sécurité
Tests Automatisés (22 tests totaux)
- 1 test app.e2e-spec.ts
- 10 tests booking-workflow.e2e-spec.ts
- 9 tests security.e2e-spec.ts
- 2 tests rate-limiting.e2e-spec.ts
Couverture Tests Sécurité
- Injection SQL : Testé (security.e2e-spec.ts)
- Authentification/Autorisation : Testé
- Validation données : Testé
- Rate limiting : Testé
- Logging sécurité : Implémenté
Actions supplémentaires (Production)
- Swagger désactivé en prod : Condition
NODE_ENV !== 'production'
implémentée - ValidationPipe optimisé :
disableErrorMessages: true
en production