API REST sécurisée en 2026 : les bonnes pratiques
Les 5 piliers d'une API REST sécurisée : authentification JWT, rate limiting, CORS, validation et logging.
La sécurité des API est devenue un enjeu critique. 83% des attaques web ciblent désormais les API plutôt que les interfaces utilisateur. Voici les 5 piliers d'une API REST sécurisée en 2026.
1. Authentification JWT
JSON Web Tokens reste le standard pour l'authentification stateless. Les règles d'or :
- Algorithme HS256 minimum : jamais de "none" ou RS256 sans rotation de clés
- Expiration courte : 15 minutes pour l'access token, 7 jours pour le refresh
- Claims minimaux : n'incluez que l'ID utilisateur et les rôles
const token = jwt.sign(
{ sub: user.id, role: user.role },
process.env.JWT_SECRET,
{ algorithm: 'HS256', expiresIn: '15m' }
);Ne stockez jamais le JWT dans le localStorage. Utilisez un cookie HttpOnly, Secure, SameSite=Strict.
2. Rate Limiting
Protégez vos endpoints contre les abus avec un rate limiter par IP et par utilisateur :
const rateLimiter = {
windowMs: 15 * 60 * 1000,
max: 100,
standardHeaders: true,
legacyHeaders: false,
};Appliquez des limites plus strictes sur les endpoints sensibles : login (5 tentatives/15min), création de compte (3/heure), reset password (3/heure).
3. CORS strict
Configurez CORS avec une allowlist explicite. Jamais de wildcard (*) en production :
- origin : liste des domaines autorisés uniquement
- methods : limitez aux méthodes nécessaires (GET, POST, PUT, DELETE)
- credentials : true uniquement si vous utilisez des cookies
4. Validation des entrées
Validez chaque entrée avec un schéma strict. Zod en TypeScript, Pydantic en Python :
const createUserSchema = z.object({
email: z.string().email().max(255),
name: z.string().min(2).max(100),
password: z.string().min(12).max(128),
});- Rejetez tout ce qui n'est pas explicitement autorisé
- Échappez les sorties pour prévenir les XSS
- Paramétrez les requêtes SQL pour prévenir les injections
5. Logging et monitoring
Loguez chaque requête avec les informations essentielles, sans données sensibles :
- Timestamp, méthode, path, status code, durée
- IP source (pour le rate limiting et la détection d'abus)
- Jamais : mots de passe, tokens, données personnelles
Conclusion
La sécurité API n'est pas optionnelle. Ces 5 piliers — JWT, rate limiting, CORS, validation, logging — forment le socle minimal de toute API professionnelle en 2026.