Que fait api-security-best-practices ?
Implémentez des modèles de conception d'API sécurisés incluant l'authentification, l'autorisation, la validation des entrées, la limitation de débit et la protection contre les vulnérabilités courantes des API.
Utilisation
Commandes
check-api-security: Analyse un projet API existant et signale les problèmes de sécurité.add-authentication: Ajoute une couche d'authentification (JWT, OAuth2) à un projet.add-rate-limiting: Intègre la limitation de débit dans une API.validate-input: Génère des règles de validation des entrées pour les endpoints.
Exemple
# Analyser la sécurité d'un projet
check-api-security /chemin/vers/mon-projet
// Exemple d'ajout de limitation de débit (Node.js avec Express)
const rateLimit = require('express-rate-limit');
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100, // limite chaque IP à 100 requêtes par fenêtre
message: 'Trop de requêtes, veuillez réessayer plus tard.'
});
app.use('/api/', limiter);
Bonnes pratiques couvertes
- Authentification : JWT avec rotation de clés, OAuth2 avec PKCE, sessions sécurisées.
- Autorisation : Contrôle d'accès basé sur les rôles (RBAC), attributs (ABAC) ou politiques (PBAC).
- Validation des entrées : Validation de schéma, nettoyage, et échappement des données.
- Limitation de débit : Par IP, utilisateur ou endpoint.
- Protection contre les vulnérabilités : Injection SQL, XSS, CSRF, fuites de données, attaques par force brute.
- Sécurisation des en-têtes :
Content-Security-Policy,X-Frame-Options,Strict-Transport-Security. - Gestion des secrets : Variables d'environnement, gestionnaires de secrets (Vault, AWS Secrets Manager).
Ressources
- OWASP API Security Top 10
- RFC 6750 – The OAuth 2.0 Authorization Framework: Bearer Token Usage
- JSON Web Tokens (JWT) RFC 7519
Contribution
Les contributions sont les bienvenues. Ouvrez une issue ou une pull request pour proposer des améliorations.