Pratiques de Développement Sécurisé
Construisez des logiciels sécurisés avec des pratiques de sécurité intégrées dans le cycle de vie du développement.
4 min de lecture
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