Nouvelle version disponible

L'app reste utilisable.

Mettre à jour
Retourv1.0 · MAJ 2026-02-20
Sécurité auditée

Ta santé.
Notre garantie.

YUMIX gère des données sensibles (poids, photos de transformation, contexte médical). Voici exactement comment on les protège — sans bullshit, sans surprise.

Mots de passe & sessions

  • Hashage bcrypt (passlib) avec coût par défaut sur 100 % des mots de passe.
  • Tokens de réinitialisation : secrets.token_urlsafe(48) — 384 bits d'entropie cryptographique.
  • Rate limiting strict : 5 tentatives/min sur /auth/login, /auth/register, /auth/reset-password. 3/min sur /auth/forgot-password.
  • Session tokens à durée de vie limitée + refresh-token rotation.
  • Les champs password_hash sont exclus des projections — jamais retournés par l'API.

PHI & données médicales

  • Mode Clinique (DT2, HTA, post-IM, blessures) : aucune donnée médicale en clair dans les logs applicatifs.
  • condition_types / coach_name / patient_id : redacted avant d'atteindre stdout.
  • Audit DB séparé (services/audit_service) avec contrôle d'accès role-based pour la traçabilité légale.
  • Bouclier médical (free-text symptômes) plafonné à 1200 caractères, sanitisé avant prompt LLM.

Validation stricte des entrées

  • Pydantic V2 sur 100 % des endpoints write — typage fort + contraintes Field(ge=, le=).
  • Poids 40-900 lbs, taille 100-250 cm, âge 13-100 ans, calories 800-8 000 kcal/jour.
  • Rejet HTTP 422 avec liste détaillée des champs aberrants.
  • Tous les endpoints /api/users/* protégés par Depends(get_current_user) — 37/37.

Stockage & chiffrement

  • MongoDB Atlas — encryption at rest AES-256 par défaut (KMS-managed keys).
  • Connexion TLS 1.2+ obligatoire entre l'app et la base.
  • Fichiers (photos transformation, avatars) : Emergent Object Storage avec ACL signed URLs.
  • Aucun secret en dur dans le code — 100 % via variables d'environnement.

Transit & CORS

  • HTTPS-only sur tous les domaines (extramiles.ca, *.emergent.host).
  • Allow-list CORS restrictive (regex stricte sur les origins autorisés).
  • Headers personnalisés (X-Session-Token) jamais exposés dans les URL/logs.
  • Pas de tokens en query string — uniquement en header ou body.

Audit & conformité

  • Audit OWASP Top 10 complet — 2026-02-20 (rapport interne).
  • A01 Access Control, A02 Cryptographic, A03 Injection, A04 Insecure Design, A05 Misconfiguration, A07 Auth, A09 Logging : ✅.
  • Logs structurés (date / niveau / route / user_id) — PHI redacted.
  • Pipeline CI : ESLint + Pylint + tests de régression baseline avant chaque déploiement.

Limites & responsabilité

  • YUMIX ne remplace PAS un avis médical. Le Mode Clinique exige une acceptation explicite de la décharge.
  • Aucun diagnostic n'est posé par l'IA — uniquement des suggestions nutritionnelles encadrées.
  • Les utilisateurs sous protocole médical doivent valider tout changement avec leur professionnel de santé.

Stack technique

FastAPI + UvicornMongoDB Atlas (AES-256)bcrypt (passlib)TLS 1.2+Pydantic V2OWASP Top 10

Tu as repéré une faille ?

Écris-moi directement à security@extramiles.ca. On répond sous 48 h ouvrables et on corrige les findings critiques sous 7 jours. Programme de responsible disclosure — pas de poursuites pour les chercheurs.

Contacter sécurité

YUMIX · Extra Miles · Dernière revue de sécurité : 20 février 2026

Ce document n'est pas un engagement contractuel — il décrit les pratiques techniques en place à la date indiquée. Pour les obligations légales formelles, voir nos CGU et notre politique de confidentialité.