4.5.0
API
API v4.5.0 — Audit de sécurité, rate limiting, durcissement.
- Correction d'une vulnérabilité SSRF dans POST /hyperplanning : la validation d'URL impose désormais HTTPS, bloque les IP privées (
127.0.0.1,192.168.x,10.x,169.254.169.254) et localhost, avec un timeout de 10 secondes. - Correction du calcul du rate limit : le compteur par minute était comparé à la limite horaire, permettant jusqu'à 2 000 req/min au lieu de 2 000 req/h. Le calcul cumule maintenant toutes les minutes de l'heure courante.
- Correction du spoofing d'IP via le header
cf-connecting-ip: passage àreq.ip(respectetrust proxy) pour empêcher le contournement du rate limit. - Ajout du burst rate limiting par plan (fenêtre de 10 secondes) : Free 50, Advanced 80, Pro 120, Business 200.
- Amélioration du gestionnaire d'erreurs : les informations sensibles (chemins,
ECONNREFUSED, stack traces) sont filtrées des messages d'erreur. Le status HTTP est préservé au lieu de toujours renvoyer 500. - Sécurisation des accès dynamiques dans les routes :
Object.hasOwn()est utilisé pouralgorithms[method],encode[method],textMod[method],validate[type]afin d'empêcher l'accès au prototype. - Ajout des headers de sécurité :
X-Content-Type-Options: nosniffetX-Frame-Options: DENY. - Correction d'une fuite mémoire dans le rate limiter : les IPs inactives et les entrées du burst tracker sont nettoyées toutes les heures.
- Ajout d'une limite de taille du body :
express.json()etexpress.urlencoded()sont limités à 10 ko (retourne413 Payload Too Large). - Centralisation de la configuration des plans (
plans.ts) : limites horaires et burst par tier, configurables via variables d'environnement. - Ajout de 9 nouveaux tests (total 305) : 4 tests unitaires SSRF et 5 tests d'intégration sécurité.
Documentation
- Ajout des limites de burst sur les pages Authentification et Tarification.
- Mise à jour du panel POST /hash avec 11 nouveaux algorithmes (sha224, sha512-224, sha512-256, sha3-224, sha3-256, sha3-384, sha3-512, blake2s256, ripemd160, shake128, shake256).
- Mise à jour du panel GET /qrcode avec les options
formatetcorrectionen dropdown. - Mise à jour du panel GET /placeholder avec les nouveaux paramètres
avataretlines. - Restructuration du CSS responsive en mobile-first avec breakpoints croissants. Le terminal n'est désormais visible qu'à partir de 1280px.