Fiche de lecture : Bonnes pratiques de développement
sécurisé
Rakotoarimalala Tsinjo Tony
Juillet 2025
Objectif
Cette che synthétise les pratiques essentielles pour écrire du code sécurisé dans le cadre du
développement d'applications web ou logicielles. Elle complète les notions théoriques vues en
cours, et fournit une base applicable dans les projets réels.
1 Validation et ltrage des entrées
Ne jamais faire conance aux entrées utilisateur.
Valider les types, formats et longueurs attendues (emails, dates, entiers...).
Préférer les listes blanches (valeurs autorisées) plutôt que listes noires.
Valider côté client pour l'expérience, mais toujours côté serveur pour la sécurité.
2 Gestion des sorties
Toujours encoder les données avant achage dans une page HTML, JavaScript ou SQL.
1. SQL Encode
2. HTML Encode
1
3. Javascript Encode
4. URL Encode
Utiliser les fonctions d'échappement spéciques au contexte : HTML, URL, SQL, JSON,
etc.
Contre les attaques XSS : encoder les sorties, activer une Content Security Policy
(CSP).
2
3 Requêtes et accès aux bases de données
Utiliser des requêtes préparées (prepared statements) ou ORM.
Ne jamais concaténer directement des entrées dans des requêtes SQL.
Séparer les droits en base de données (lecture seule, écriture, admin...).
4 Authentication et gestion des sessions
Ne jamais stocker les mots de passe en clair : utiliser bcrypt, Argon2, etc.
Implémenter une expiration de session et un renouvellement de token sécurisé (via JWT,..).
Utiliser les attributs HttpOnly, Secure, SameSite pour les cookies.
3
Limiter le nombre de tentatives de connexion (anti-brute-force).
5 Gestion des erreurs et des logs
Ne jamais acher d'information technique à l'utilisateur (ex : stacktrace).
Enregistrer les erreurs en interne (logs), mais sans données sensibles.
Protéger les chiers de logs (accès restreint).
6 Utilisation des dépendances
Ne jamais faire aveuglément conance aux librairies tierces.
Maintenir les dépendances à jour (npm audit, pip-audit, etc.).
Utiliser des outils d'analyse de vulnérabilités (SCA).
7 Déploiement sécurisé
Ne pas exposer les chiers de conguration contenant des secrets.
Ne jamais versionner les mots de passe ou clés API.
Séparer les environnements (développement, test, production).
8 Sécurisation des APIs
Authentication et autorisation
Utiliser OAuth2 ou JWT pour les utilisateurs.
Protéger les endpoints avec des rôles (admin, user...).
Ne pas exposer les API sans contrôle d'accès.
4
Validation des données
Contrôler le type, le format et la taille des données reçues.
Utiliser des schémas de validation (Pydantic, Marshmallow...).
Rate limiting et sécurité réseau
Limiter le nombre de requêtes par IP.
Protéger par rewall ou reverse proxy.
Forcer l'utilisation de HTTPS.
Exposition minimale des données
Ne jamais renvoyer de données internes ou de messages sensibles.
Protéger les logs et désactiver les messages de debug en production.
Recommandation Consulter le OWASP API Security Top 10 pour suivre les menaces les plus
courantes.
Rappels clés
Moins de code = moins de surface d'attaque.
Appliquer le principe du moindre privilège.
Penser sécurité dès la conception (Security by Design).
Utiliser des outils d'analyse de code (linting, SAST).
Pour aller plus loin
OWASP Top 10 : https://owasp.org/www-project-top-ten/
Cheat Sheets OWASP : https://cheatsheetseries.owasp.org/
The Secure Developer Podcast : https://www.devseccon.com/the-secure-developer
Un bon développeur pense fonctionnalité, un excellent pense sécurité.