1. Toujours authentifier
- JWT signé, durée raisonnable, refresh géré.
- Interdiction des endpoints anonymes non nécessaires.
- Rôles / claims pour restreindre les accès.
2. Valider toutes les entrées
ModelState.IsValidsystématique.- Attributs
[Required],[MaxLength],[Range], etc. - Nettoyage / contrôle des fichiers uploadés.
3. Gérer les erreurs proprement
- Middleware global d’exception.
- Jamais de stack trace brute vers le client.
- Codes HTTP cohérents (400, 401, 403, 404, 500).
4. Logs & audit
- Logging structuré (Serilog, etc.).
- Traces sur les actions sensibles.
- Corrélation ID pour suivre une requête.
5. HTTPS & configuration
- HTTPS obligatoire.
- Secrets dans variables d’environnement / KeyVault,
pas dans le code.
Cette checklist est celle que j’applique sur mes projets clients.
Une API .NET bien sécurisée, c’est surtout une discipline et des automatismes.