4 min lecture • Guide 371 of 877
Pratiques de Développement Sécurisé
La sécurité est la responsabilité de tous, pas seulement celle de l'équipe sécurité. Les bonnes pratiques de sécurité sont intégrées dans les workflows de développement, pas ajoutées à la fin. Ce guide couvre les pratiques de sécurité pratiques pour les équipes de développement.
Sécurité dans le SDLC
| Phase | Activité Sécurité |
|---|---|
| Conception | Modélisation menaces |
| Code | Codage sécurisé, revue |
| Build | SAST, scan dépendances |
| Test | DAST, test pénétration |
| Déploiement | Scan container, secrets |
| Exécution | Monitoring, patching |
Codage Sécurisé
Pratiques de Développement
CODAGE SÉCURISÉ
═══════════════
VALIDATION DES ENTRÉES:
─────────────────────────────────────
Toujours valider:
├── Input utilisateur
├── Paramètres API
├── Uploads de fichiers
├── Headers
├── Ne jamais faire confiance aux entrées
└── Liste blanche plutôt que liste noire
Exemple:
// Mauvais
const userId = req.params.id;
db.query(`SELECT * FROM users WHERE id = ${userId}`);
// Bon
const userId = parseInt(req.params.id, 10);
if (isNaN(userId)) throw new Error('Invalid ID');
db.query('SELECT * FROM users WHERE id = ?', [userId]);
ENCODAGE DES SORTIES:
─────────────────────────────────────
├── Encodage HTML pour contexte HTML
├── Encodage URL pour URLs
├── Paramétrage SQL pour requêtes
├── Encodage conscient du contexte
└── Prévenir les injections
AUTHENTIFICATION:
─────────────────────────────────────
├── Utiliser des bibliothèques éprouvées
├── Exigences mot de passe fort
├── Rate limiting sur login
├── Gestion sessions sécurisée
├── MFA quand approprié
└── Ne pas créer le vôtre
AUTORISATION:
─────────────────────────────────────
├── Vérifier à chaque requête
├── Application côté serveur
├── Principe du moindre privilège
├── Ne pas se fier au client
└── Contrôle d'accès explicite
GESTION DES SECRETS:
─────────────────────────────────────
├── Jamais dans le code
├── Variables d'environnement
├── Gestionnaires secrets (Vault, AWS Secrets)
├── Rotation régulière
├── Différent par environnement
└── Secrets protégés
Revue de Code
Focus Sécurité
REVUE CODE SÉCURITÉ
═══════════════════
CHECKLIST REVUE:
─────────────────────────────────────
Pour chaque PR:
├── ☐ Validation entrées présente
├── ☐ Pas de secrets codés en dur
├── ☐ SQL paramétré
├── ☐ Vérifications auth en place
├── ☐ Données sensibles protégées
├── ☐ Gestion erreurs sécurisée
├── ☐ Logging assaini
└── Revue consciente de la sécurité
DRAPEAUX ROUGES:
─────────────────────────────────────
Surveiller:
├── Concaténation de chaînes dans requêtes
├── eval() ou similaire
├── Mots de passe/clés codés en dur
├── Vérifications auth manquantes
├── Contrôles sécurité désactivés
├── CORS trop permissif
├── Données sensibles dans les logs
└── Patterns mauvais connus
VÉRIFICATIONS AUTOMATISÉES:
─────────────────────────────────────
Portes CI/CD:
├── SAST bloque sur problèmes critiques
├── Scan dépendances bloque vulnérabilités
├── Détection secrets empêche commits
├── Scan container vérifie images
└── Échoue vite, corrige tôt