Skip to content

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 (respecte trust 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é pour algorithms[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: nosniff et X-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() et express.urlencoded() sont limités à 10 ko (retourne 413 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 format et correction en dropdown.
  • Mise à jour du panel GET /placeholder avec les nouveaux paramètres avatar et lines.
  • Restructuration du CSS responsive en mobile-first avec breakpoints croissants. Le terminal n'est désormais visible qu'à partir de 1280px.