Transformez votre API de développement en service de production robuste : masquage des traces de pile (stack traces), sécurisation des en-têtes HTTP avec Helmet, compression Gzip et limitation des requêtes (rate limiting).
Verrouille automatiquement 11 en-têtes HTTP contre le détournement de clic, XSS et sniffing.
Divise par 4 la taille des charges utiles JSON envoyées aux applications mobiles et web.
Empêche l'affichage des détails internes du code et des requêtes SQL aux attaquants.
Protège votre base de données contre les dénis de service et les attaques par force brute.
import express, { Request, Response, NextFunction } from 'express';
import helmet from 'helmet';
import compression from 'compression';
import rateLimit from 'express-rate-limit';
const app = express();
// 1. Sécurité des en-têtes HTTP
app.use(helmet());
// 2. Compression des réponses JSON
app.use(compression());
// 3. Limitation du débit (Rate limiting)
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100, // Max 100 requêtes par IP
standardHeaders: true,
legacyHeaders: false,
});
app.use('/api/', limiter);
// 4. Gestionnaire d'erreurs global (Masque les stack traces en production)
app.use((err: any, req: Request, res: Response, next: NextFunction) => {
const status = err.status || 500;
res.status(status).json({
success: false,
message: process.env.NODE_ENV === 'production'
? 'Une anomalie interne est survenue.'
: err.message
});
});/home/debian/mon-api/src/...) et le nom de vos tables de base de données. Ces informations fournissent une carte routière aux pirates informatiques. X-Powered-By: Express (qui dit au monde entier quelle techno vous utilisez) et active X-Content-Type-Options: nosniff.| Fonctionnalité | Comportement en Développement | Configuration Obligatoire en Production |
|---|---|---|
| Variable NODE_ENV | Non définie ou 'development' | Strictement 'production' (active les caches internes) |
| Affichage des erreurs | Stack trace complète et message brut | Message générique sécurisé + log serveur privé |
| En-têtes HTTP | X-Powered-By: Express visible | Helmet activé avec protection anti-sniffing |
| Gestion du débit | Illimité | Limiteur (ex: 100 requêtes / 15 min par IP) |
| Journalisation (Logs) | Affichage console verbeux | Logs structurés (Winston / Pino) vers fichiers tournants |