SaaS sécurisé
Auth multi-user, RLS Postgres testée en CI, RGPD par endpoint, audit log par tenant — les 3 extensions X01/X02/X03 incluses.
Lance un vrai SaaS multi-tenant, enterprise-ready dès la mise en ligne.
Pas encore d'achat possible — inscris-toi pour être prévenu·e en priorité au lancement.
Sur l'infopreneur B05 : comptes utilisateurs, abonnements et Portal Stripe, isolation multi-tenant, chiffrement des données, droits RGPD par endpoint, dashboard d'administration et CRM — extensions X01 à X03 incluses. Un SaaS sécurisé clé en main.
# Le scénario qu'on refuse de revivre.
Tu passes du produit-à-l'unité au SaaS : comptes utilisateurs, abonnements récurrents, données par client, dashboard d'admin, RGPD par endpoint. À ce stade, la sécurité devient existentielle. Une fuite inter-tenant (client A voit les données de client B) tue la confiance instantanément et déclenche une notification CNIL à 72 h. Les fondateurs SaaS qui survivent à 3 ans ont tous la même hygiène : Row-Level Security obligatoire, tests d'isolation en CI, audit log immuable par tenant, chiffrement applicatif sur les PII.
Le bundle livre l'intégralité : auth multi-user (magic link + MFA TOTP, JWT signés courts, refresh rotatif), abonnements Stripe + Portal client self-service, RLS strict Postgres avec tests CI d'isolation, chiffrement pgcrypto au niveau colonne, endpoints RGPD complets (export/deletion/consentement), audit log immuable par tenant, et headers HTTP durcis. Plus les 3 extensions (X01 hardening, X02 résilience, X03 atelier dev pro) déjà incluses.
# Les angles morts que ce bundle ferme.
Chaque ligne est un risque mesuré, pas un fantasme. Si tu reconnais ton stack dans une d'elles, c'est que ce bundle est pour toi.
RLS absent ou mal configuré
→ Fuite inter-tenant — client A voit les données de client B. Fin de partie.
PII stockées en clair en base
→ Une fuite DB = notification CNIL à 72 h + amende jusqu'à 4% CA.
Droits RGPD non câblés (export, deletion)
→ Plainte CNIL → contrôle → injonction sous 1 mois → astreinte.
Audit log absent ou modifiable
→ Incident inrévisible, impossible de prouver qui a fait quoi.
# Les maillons verrouillés dans la kill-chain.
La chaîne MITRE ATT&CK décompose une attaque en 13 tactiques, de la reconnaissance à l'impact. Ce bundle rend impraticables les maillons surlignés ci-dessous — l'attaquant ne peut plus enchaîner.
maillons en couleur : verrouillés par B06 (en propre + hérité des bundles empilés) · maillons grisés : couverts par d'autres bundles (cf. /bundles)
# Ce qu'il y a dans la boîte.
Chaque toolkit est livré avec son code, son runbook, et ses tests. Pas de SaaS caché, pas d'abonnement implicite — tu possèdes tout ce que tu déploies.
- T-05-01Auth multi-userEmail + magic link + MFA TOTP. Sessions JWT signées court, refresh rotatif.
- T-05-03Coolify secrets hardenChiffrement at-rest des secrets Coolify, contrôle des accès et audit.
- T-05-04Headers HTTP durcisCSP stricte, HSTS, anti-clickjacking, Permissions-Policy. Zéro 'unsafe-inline'.
- T-05-05Chiffrement at-rest Postgres (pgcrypto)Chiffrement au niveau colonne via pgcrypto, gestion de clés KMS.
- T-05-06Chiffrement des champs sensibles applicatifsWrappers applicatifs pour les PII, déchiffrement contrôlé.
- T-07-04Abonnements Stripe + Portal clientPaiement récurrent, Portal client en self-service, upgrade / downgrade.
- T-07-05RGPD vente — droits, export, suppressionEndpoints RGPD complets côté client et registre de traitement.
- T-09-01PII tagging + audit log immuableSchéma de tagging des données personnelles, logs append-only.
- T-09-02RGPD endpoints (export, deletion, consent)Endpoints dédiés, registre de traitement, anonymisation.
- T-10-01RLS multi-tenantPostgres Row-Level Security strict + tests d'isolation par tenant. Aucune fuite inter-clients.
- T-10-04Per-tenant audit log + tests isolationAudit log immuable par tenant + tests CI d'isolation.
- T-01-01Coolify hardenedVPS, OS et Coolify durcis : SSH key-only, MFA TOTP, HSTS, rate-limit Traefik, fail2ban, audit log.
- T-01-02DNS + TLS autoCloudflare + Let's Encrypt + DNSSEC + SPF/DKIM/DMARC. Le binôme naturel de T-01-01.
- T-01-03Next.js 16 boilerplate sécuriséRepo Next.js 16.2 prêt à déployer, headers de sécurité par défaut (CSP stricte, HSTS preload, Permissions-Policy minimaliste).
- T-01-04GitHub repo + Coolify auto-deployDu git push au site en prod en 8 minutes : repo durci, CI/CD, branch protection prod et webhook HMAC.
- T-01-05Secrets Infisical completSelf-host Infisical : admin, provisioning, rotation et SDK Next.js/Astro. Tes clés sortent des .env.
- T-03-02Article MDX + Schema.orgContenu MDX automatisé, balisage Schema.org DefinedTerm et SEO.
- T-03-03Sitemap + RSS autoGénération automatique du sitemap XML et du flux RSS.
- T-03-04MDX glossaire + Schema.orgGlossaire indexé avec balisage DefinedTerm Schema.org.
- T-03-05Recherche client-sideFiltres et tags côté client, sans requête réseau.
- T-03-06Template article storytellingTrame en N actes pour un article structuré.
- T-03-07Cliffhanger commercialIntégration d'un cliffhanger en fin d'article — du contenu vers la conversion.
- T-03-08Trust page dogfoodingPage de transparence et de cas d'usage (dogfooding).
- T-03-09Cal.com embed sécuriséIntégration iframe sécurisée de Cal.com.
- T-03-10GEO — optimisation LLMsOptimisation pour les moteurs de recherche IA / LLMs.
- C-03-01Identité numérique + branding réseaux sociauxCohérence visuelle et éditoriale : profils X / LinkedIn / Instagram, ton de voix, charte.
- T-04-01Privacy + CGV RGPDTemplates juridiques relus (CGV, confidentialité, cookies). Audit-ready.
- T-04-02Cookie banner conformité RGPD/CNILBannière cookies maison conforme CNIL : default-deny, boutons équivalents, Google Consent Mode v2, bilingue FR/EN.
- T-04-03Mentions légales generatorQuestionnaire CLI interactif qui génère une page mentions légales conforme LCEN en 30 minutes.
- T-06-01Tally + webhook BeehiivFormulaire Tally embarqué dans Next.js + webhook n8n : contact créé dans Supabase et taggé dans Beehiiv. Idempotent par email.
- T-06-02Privacy by design questionnairePattern réutilisable : consentement explicite et granulaire, minimisation, droits utilisateur affichés, audit trail des consentements.
- T-06-03Quiz scoringQuiz 8 questions + scoring + tag → emails orientés. Le hook qui qualifie ton trafic.
- T-06-04Mini-rapport auto-généréPage web persistante (URL signée) + PDF : score visuel en radar, 3 recommandations cliquables, comparaison anonymisée, CTA coaching.
- T-06-05Séquence email orientée par tag (Beehiiv)4 séquences Beehiiv pré-rédigées + automation n8n qui ajoute le contact selon son tag de questionnaire. Éduque puis convertit.
- T-06-06n8n + Supabase CRM schémaMini-CRM Supabase (contacts, tags, achats, séquences, scores) avec RLS strict, piloté par des workflows n8n.
- T-06-07Lead scoring autoScore 0-100 par contact agrégé sur tous les signaux (opens, clics, quiz, achats, sessions) + routing email automatique.
- T-06-08Review collection automationEmail automatique 30 j après achat → page de collecte d'avis → publication contrôlée.
- A-06-02Workflow Formbricks → Supabase CRMSoumission de formulaire → enregistrement CRM + email transactionnel.
- T-07-01Stripe Checkout sécuriséWebhooks signés, idempotence, secrets en coffre, tests anti-replay.
- T-07-02Email post-achat autoEmail transactionnel + livraison du bundle ZIP via lien signé HMAC révocable, déclenché sur checkout.session.completed.
- T-07-033-funnel homePage d'accueil à 3 funnels — gratuit / no-brainer / coaching — forms validés Zod, analytics Plausible sans cookie.
- A-07-02Workflow post-purchase completWebhook Stripe → CRM + email + accès + tag + démarrage de séquence. Workflow n8n bout-en-bout.
- T-08-01Harness Claude + envs séparésWorkspaces dev/staging/prod, profils .claude/ isolés.
- T-08-02Branches isolées + worktrees ClaudeWorktrees git pour du travail parallèle sans collision.
- T-08-03Tests automatisés CIVitest + Playwright + GitHub Actions, golden tests.
- T-08-04Coverage + qualité CI/CDSeuil de couverture, lint, type-check, audit des dépendances (CVE), SBOM et signature des artefacts.
- T-08-05IA isolée de la prodContainer FS/réseau restreints, no eval, env guards, PR en lecture seule.
- T-08-06MCP servers sécurisésAllowlist + RBAC + scopes OAuth, audit. Partagé entre le bunker (X01) et l’atelier dev (X03).
- T-08-07Dashboard santé infra/sécu/CRMGrafana + requêtes Plausible : métriques, logs, traces et alerting.
- T-08-08Email Queue & multi-SMTP routerFile d'envoi priorisée, bascule multi-providers et étalement des envois newsletter.
- T-08-09Matrice de risque Notion + page d'explicationTemplate Notion de matrice de risque + page Next.js avec heatmap interactive et capture email.
- T-08-10Product Factory standalonePipeline de production de produits : templates Next.js, workflows n8n et checklist de lancement en 12 points.
- T-08-11Skill MCP création d'articles MDXCommande perso : générer un article structuré (frontmatter + Schema + cliffhanger).
- T-08-12Skill MCP gestion Cal.comCommande perso : booker, relancer, déplacer ou annuler un RDV.
- T-08-13Skill MCP newsletter BeehiivCommande perso : drafter, segmenter, publier et mesurer une newsletter.
- C-08-04Plan vidéo + tournage + post-prodWorkflow complet : script, prompt de slides, webcam, post-production et publication.
- C-08-05Framework skills/commandes/MCP persoMéthode et architecture pour construire ses propres skills — chapeau de T-08-11/12/13.
- T-09-03Hardening exécution sandboxUtilisateurs Linux, capabilities, sudo restreint, isolation des processus, seccomp.
- T-09-04Container hardening (AppArmor/SELinux)Profils MAC, images distroless.
- T-09-05Sonde Falco / TetragonDétection comportementale au niveau syscall, basée eBPF.
- T-09-06Backup chiffré (age + R2 immutable)Restic/Kopia/borg + age + R2 immuable. Restauration testée chaque mois.
- T-09-07Recovery plan + test restoreRunbook DR, exercice de restauration mensuel, drill 3-2-1.
- T-09-08Network segmentationVLAN/firewall, micro-segmentation, réseaux Docker et filtrage inter-services.
- T-09-09Endpoints discovery hardenedCartographie de l'exposition d'API, gestion de la surface d'attaque.
- T-09-10Zero Trust gatewayProxy identity-aware (Tailscale / Pomerium), SSO en amont. Plus aucun port public exposé.
- T-09-11KMS rotationRotation automatique des clés, re-chiffrement, audit.
- T-09-12Resilience plan (RTO/RPO + DNS failover)RTO/RPO, continuité d'activité, bascule DNS Cloudflare.
- T-09-13Incident response runbookPlaybooks structurés : alerting → triage → containment.
- T-09-14Conteneurs disposable + anti-DDoSContainers éphémères, WAF Cloudflare, rate limiting.
- T-09-15User-per-stack (Coolify scoped)Isolation par stack, principe du moindre privilège.
- T-09-16Chiffrement à froid hardwareHSM, clés matérielles, stockage à froid.
# Techniques d'attaque contrées par B06.
Ce que B06ajoute en propre, détaillé. Référencé MITRE ATT&CK (cliquable) — chaque technique pointe vers la fiche officielle.
- T1078.004Valid Accounts: Cloud Accounts
Compte utilisateur volé = accès tenant. MFA TOTP + JWT courts + détection d'anomalie sessions ferment cette route.
- T1213.003Data from Information Repositories: Code Repositories
Une requête SQL injectée sans RLS = exfiltration totale. RLS strict + tests d'isolation en CI rend la fuite inter-tenant impossible.
- T1611Escape to Host
Container compromis qui s'échappe = compromission de tout le SaaS. User-per-stack (X01) + hardening systématique isole les blast radius.
- T1530Data from Cloud Storage
Backup non chiffré, bucket S3 ouvert = vol des PII. Chiffrement pgcrypto + backup age + R2 immuable (X02) neutralisent.
- T1485Data Destruction
Ransomware sur ta base de prod = boîte morte. Backups immuables + drill mensuel de restauration (X02) te ramènent à T-24h.
Hérité de B01-B05 + X01-X03. Détail au survol de chaque chip.
- T1110.001Brute Force: Password GuessingLe scan SSH automatisé est le bruit de fond d'Internet. SSH key-only + fail2ban rend la technique inopérante.
- T1110.003Brute Force: Password SprayingSpray distribué sur Coolify/SMTP/SSH. Rate-limit Traefik + fail2ban + MFA neutralisent la technique.
- T1190Exploit Public-Facing ApplicationCoolify, Next.js ou un service auto-déployé sont des cibles. Hardening Coolify + headers stricts Next.js réduisent la surface d'exploitation.
- T1133External Remote ServicesAdmin Coolify ou SSH exposés sur Internet. MFA TOTP + IP allowlist optionnelle rendent l'identifiant volé inutile.
- T1078Valid AccountsCompte admin volé = jeu fini. MFA TOTP + audit log + alerting sur connexions anormales.
- T1556Modify Authentication ProcessBackdoor PAM ou SSH config malveillant. Audit log immuable + supervision de /etc/ssh/sshd_config + pam.d détecte la modification.
- T1189Drive-by CompromiseInjection de scripts tiers sur ton site. CSP stricte avec nonce + zéro 'unsafe-inline' bloque l'exécution non autorisée.
- T1059.007Command and Scripting Interpreter: JavaScriptXSS dans une page rendue. CSP nonce + headers durcis + ESLint security en CI bloquent l'injection.
- T1557Adversary-in-the-MiddleSpoofing DNS ou interception TLS. DNSSEC + HSTS preload + TLS auto Let's Encrypt rendent l'interception techniquement coûteuse.
- T1566.002Phishing: Spearphishing LinkMails frauduleux envoyés depuis ton domaine. SPF + DKIM + DMARC reject coupent la route aux usurpateurs.
- T1195.002Supply Chain Compromise: Compromise Software Supply ChainActions GitHub compromises (tj-actions, etc.). Pinning par SHA + scope "selected" + GitHub App à permissions minimales contiennent le blast radius.
- T1098Account ManipulationAjout d'une clé SSH ou d'un collaborateur GitHub par l'attaquant. Branch protection prod + audit log + alerting sur les changements d'identité ferment la persistance.
- T1499Endpoint Denial of ServiceFlood applicatif sur l'app Next.js. Rate-limit Traefik + middleware applicatif absorbent les vagues.
- T1565.002Data Manipulation: Transmitted Data ManipulationUn attaquant peut rejouer un webhook Stripe non signé. La signature HMAC + table d'idempotence le neutralise.
- T1539Steal Web Session CookieCookies sans Secure/HttpOnly/SameSite=Strict sont volables. Le bundle force les trois.
- T1606.001Forge Web Credentials: Web CookiesSans secret de session robuste, un cookie de session se forge. Le bundle utilise des secrets rotatifs Infisical.
- T1071.001Application Layer Protocol: Web ProtocolsUn webhook public non authentifié est un canal d'injection. HMAC signé + IP allowlist le ferme.
- T1499.003Endpoint DoS: Application Exhaustion FloodQuiz/form sans plafond = saturation de la file email. Plafond de taille + rate-limit + CAPTCHA optionnel.
- T1595.002Active Scanning: Vulnerability ScanningLes sites de contenu sont scannés en permanence (WP-Scan, etc.). Les headers durcis + rate-limit rendent le scan stérile.
- T1657Financial TheftBot scraping IA = coût d'infrastructure injustifié. Rate-limit + filtrage User-Agent réduit le coût d'attaque à zéro pour toi.
- T1556.003Modify Authentication Process: Pluggable Authentication ModulesPas de plugin tiers à exploiter (vs WordPress). La stack MDX statique élimine toute la surface plugin-PHP.
- T1499.004Endpoint DoS: Application or System ExploitationFile d'envoi non plafonnée = saturation par campagne. Email Queue avec étalement + multi-SMTP router (X03) absorbe les pics.
- T1068Exploitation for Privilege EscalationLocal privesc via CVE noyau. Seccomp + capabilities minimales + Falco détecte les syscalls anormaux.
- T1021.004Remote Services: SSHPivot SSH inter-services après compromission. Zero Trust gateway impose SSO + segmentation réseau bloque le pivot.
- T1486Data Encrypted for ImpactRansomware chiffre tout ce qu'il atteint. Backups immuables age + R2 (write-once) restent récupérables.
- T1490Inhibit System RecoverySuppression des snapshots / shadow copies. KMS rotation + clés hors-bande dans HSM permettent la récup même si l'infra prod est compromise.
- T1498Network Denial of ServiceDDoS volumétrique. WAF Cloudflare + rate-limit applicatif + conteneurs disposable absorbent la vague.
- T1554Compromise Host Software BinarySkill MCP compromise = exécution arbitraire. Allowlist + RBAC + scopes OAuth (T-08-06) cadenasse.
# Contre-mesures posées par B06.
Référentiel D3FEND (MITRE), pendant défensif d'ATT&CK. Ci-dessous, ce que B06 pose en propre.
- D3-MFAMulti-factor Authentication
TOTP imposé pour l'admin, magic-link + MFA optionnel côté user, JWT courts (15 min) avec refresh rotatif.
- D3-RACResource Access Control
Postgres RLS strict, isolation tenant prouvée par tests CI, audit log immuable par tenant.
- D3-FEFile Encryption
pgcrypto au niveau colonne pour les PII, KMS rotation automatique (X02), chiffrement à froid hardware.
- D3-BANBackup and Restore
Restic/Kopia + age + R2 immuable, drill de restauration mensuel obligatoire, plan DR documenté (X02).
- D3-UAPUser Account Permissions
Endpoints RGPD : export complet, suppression effective, registre des consentements, anonymisation contrôlée.
Hérité de B01-B05 + X01-X03. Détail au survol de chaque chip.
- D3-HTHHost HardeningOS durci (sysctl, kernel params, sudoers), fail2ban actif, audit log sur le VPS, mises à jour automatiques de sécurité.
- D3-NTANetwork Traffic AnalysisRate-limit Traefik + fail2ban : les scans répétés et les patterns de bruteforce sont bloqués au niveau réseau.
- D3-IAAInbound AuthenticationCSP stricte avec nonce par requête, HSTS preload, X-Frame DENY, Permissions-Policy minimaliste — pas un seul 'unsafe-inline'.
- D3-DNSDLDNS DenylistingDNSSEC sur le domaine + SPF/DKIM/DMARC reject configurés — usurpation et phishing en ton nom coupés à la racine.
- D3-CIACryptographic Integrity AuditTLS auto Let's Encrypt avec renouvellement vérifié, DNSSEC chain validée, en-têtes HSTS preload.
- D3-MAMessage AuthenticationWebhooks GitHub → Coolify signés HMAC, vérification stricte côté receveur — pas de déploiement déclenchable par un tiers.
- D3-IBCAInput ValidationTous les inputs (body, query, headers) validés via Zod avant traitement.
- D3-DAData AuthenticationBannière cookies CNIL-conforme, registre des consentements, audit trail.
- D3-NTFNetwork Traffic FilteringRate-limit par IP/email sur tous les endpoints publics (form, quiz, magic-link).
- D3-PAProcess AnalysisMDX compilé en statique : pas de code utilisateur exécuté à l'affichage. La surface XSS est nulle par construction.
- D3-EALExecutable AllowlistingRecherche client-side : aucun appel réseau à un service tiers depuis le browser. Donnée 100% locale.
- D3-SCFSystem Call FilteringWorkflows n8n isolés par user Linux, capabilities restreintes (cf. X01 Bunker pour le hardening avancé).
- D3-PSEPProcess Segment Execution PreventionImages distroless, runtime non-root, capabilities Linux strictement plafonnées.
- D3-NINetwork IsolationSegmentation VLAN/firewall, micro-segmentation Docker, Zero Trust gateway (Tailscale/Pomerium) en frontal.
- D3-CRCredential RotationRotation KMS automatique, re-chiffrement progressif, audit log des accès aux clés.
- D3-ASAsset InventoryPlan RTO/RPO documenté, runbook d'incident response structuré, contact list à jour, DNS failover Cloudflare prêt à basculer.
- D3-DEMDependency EvaluationAudit CVE des dépendances en CI, SBOM généré à chaque build, signature des artefacts.
- D3-ANCIAuthentication Cache InvalidationTests CI obligatoires (Vitest + Playwright), coverage minimum, golden tests sur les paths critiques.
- D3-SAORSystem Activity MonitoringDashboard Grafana santé infra/sécu/CRM, file d'emails priorisée multi-SMTP avec failover.
# Tu hésites ? Lis ça.
Pourquoi inclure les 3 extensions dans B06 ?
Un SaaS sans hardening (X01), sans résilience (X02), sans atelier dev pro (X03), c'est un proto. Les 3 extensions ne sont pas optionnelles à ce stade — elles sont la définition de "enterprise-ready". On les inclut au prix de gros.
Combien de tenants supporte la stack ?
Architecturalement : illimité. Pratiquement, jusqu'à ~5000 tenants sans tuning (Postgres + Coolify single-VPS). Au-delà, scaling horizontal des workers n8n et passage Redis multi-instance pour le rate-limit.
C'est conforme SOC 2 / ISO 27001 ?
Le bundle te met sur la trajectoire (audit log, RLS, chiffrement, RGPD, runbook DR). L'attestation formelle SOC 2 / ISO reste un travail d'audit séparé — mais tu pars avec 70% des contrôles déjà implémentés et documentés.
Combien de temps depuis zéro ?
Si tu pars de B01 et empiles : 3 à 6 semaines de travail concentré pour atteindre B06 prêt à servir des clients. Si tu pars directement de B06 : 8 à 10 jours pour comprendre et adapter à ta verticale.
# Pas encore en vente, mais réserve ta place.
Laisse-moi ton email — tu seras prévenu·e en priorité au lancement, avec une réduction pré-achat. Aucune newsletter, aucun spam : juste l'annonce du jour J.