# Back-end — Risques & vigilance Ce fichier recense des risques back-end susceptibles de provoquer : - incidents prod, - failles de sécurité, - bugs non diagnostiquables, - régressions coûteuses, - incohérences de données. Dernière mise à jour : 25-01-2026 --- ## Règles d’utilisation - Chaque entrée doit dire : - ce qui peut mal se passer, - comment on le voit (symptômes), - comment on le maîtrise (mitigation). - Si c’est lié à une stack / version : on note le contexte. --- ## AuthN/AuthZ dispersée (contrôles d’accès au fil de l’eau) ### Risques - Règles de permissions incohérentes selon endpoints - Failles “oubliées” sur un endpoint secondaire - Audit impossible ### Symptômes - Utilisateurs qui accèdent à des ressources non prévues - Correctifs en urgence “on ajoute un if ici” - Bugs qui réapparaissent après refactor ### Bonnes pratiques / mitigations - Centraliser authn/authz (middleware/policies) - Tests sur règles critiques - Logs/audit des décisions d’accès --- ## Contrats API implicites (validation faible ou absente) ### Risques - Entrées non validées → erreurs bizarres / vulnérabilités - Changements qui cassent le front et les intégrations ### Symptômes - 500 sur erreurs utilisateur - Incohérences de format de réponse - “Ça marche en staging, pas en prod” (données réelles) ### Bonnes pratiques / mitigations - Schémas (OpenAPI/JSON Schema) + validation serveur - Formats de réponse cohérents - Versionner/éviter breaking changes --- ## Erreurs non standardisées (4xx/5xx incohérents) ### Risques - Front et automatisations impossibles à rendre robustes - Debug long (pas de codes internes, pas de corrélation) ### Symptômes - Clients qui “retry” sur des 4xx - Messages techniques exposés aux utilisateurs - Logs inexploitables ### Bonnes pratiques / mitigations - Mapping HTTP standard + format d’erreur stable - Codes internes d’erreurs applicatives - requestId/traceId partout --- ## Migrations risquées / non reproductibles ### Risques - Downtime - Perte de données - Incohérence entre environnements ### Symptômes - “Ça marche en local” mais pas en prod - Migration qui échoue à mi-chemin - Rollback impossible ### Bonnes pratiques / mitigations - Migrations versionnées + tests staging - Stratégie expand/contract si besoin - Plan de rollback/mitigation --- ## Non-idempotence sur opérations sensibles ### Risques - Doubles paiements / doubles créations - Webhooks rejoués qui cassent l’état ### Symptômes - Doublons de lignes en DB - Actions exécutées 2 fois après timeout/retry - Incidents difficiles à reproduire ### Bonnes pratiques / mitigations - Idempotency key sur endpoints critiques - Protection anti-doublon côté DB (contraintes uniques) - Comportement défini en cas de retry --- ## Observabilité insuffisante (logs non structurés, pas de corrélation) ### Risques - MTTR très élevé : on devine - Incapacité à mesurer l’impact utilisateur ### Symptômes - Logs “ça a crash” sans contexte - Impossible de relier une requête à une erreur - Latence qui dérive sans alerte ### Bonnes pratiques / mitigations - Logs structurés + requestId/traceId - Métriques de base (latence, erreurs, throughput) - Alertes simples sur 5xx/latence