La confiance chez Squish

Comment nous protégeons les données clients, avec qui nous les partageons et combien de temps nous les conservons. Mis à jour le 4 novembre 2026.

MFA obligatoire (fournisseurs + équipe)
Impersonation journalisée et auditée
Accès Cloudflare Zero Trust
SOC 2 Type 1 en cours
Voir l'état du système en direct

Vue d'ensemble de l'architecture

Squish est une plateforme multi-services. Le site client (squish.co) et le CRM interne (work.squish.co) tournent sur Cloudflare Workers / Pages. Cinq backends Node.js — squish-backend, squish-crm-backend, squish-provisioning, squish-email et squish-hosting — tournent sur Railway dans la région US-East. Les dossiers clients sont hébergés dans Salesforce ; l'état transactionnel, les journaux d'audit et les métadonnées de provisioning résident dans Google Firestore (région US). Les données de paiement sont détenues par Stripe — Squish est hors du périmètre PCI, par conception.

L'enregistrement de domaines passe par NameSilo. L'hébergement mutualisé repose sur des nœuds Plesk hébergés sur des droplets DigitalOcean ; les VPS Managed Cloud utilisent CyberPanel par défaut, sur leur propre droplet. Les sites hébergés sont servis derrière le CDN et le WAF de Bunny. Les licences Microsoft 365 sont fournies via Pax8 (CSP).

Chiffrement

  • En transit : TLS 1.3 (TLS 1.2 minimum) de bout en bout via Cloudflare. HSTS appliqué sur chaque domaine exposé aux clients.
  • Au repos : chiffrement par défaut de Firestore (AES-256), chiffrement de la plateforme Salesforce ; Stripe gère toutes les données de carte avec des contrôles PCI DSS niveau 1.
  • Secrets : toutes les clés API, identifiants de comptes de service et chaînes de connexion aux bases de données résident dans les variables d'environnement Railway et les secret bindings Cloudflare — jamais dans le code source.
  • Sauvegardes : récupération à un instant donné de Firestore (fenêtre de 7 jours). Les dossiers clients Salesforce résident sur la plateforme Salesforce, avec sa réplication et sa reprise après sinistre intégrées.

Authentification et contrôle d'accès

  • Authentification client : Firebase Auth (e-mail + mot de passe, plus des fournisseurs OAuth optionnels). JWT à courte durée de vie (TTL de 1 heure).
  • Authentification du personnel : Cloudflare Access devant chaque surface interne. SSO + MFA obligatoires. Jetons de session limités par application.
  • Service à service : clé API interne partagée + contrôles de rôle par route (admin / support / ventes).
  • Impersonation : chaque session « agir en tant que client » du personnel est journalisée avec le motif, l'ensemble des actions et les horodatages de début/fin. Les actions destructrices (changement de moyen de paiement, transferts de registrar) sont bloquées pendant l'impersonation par une liste d'exclusion explicite.

Journalisation d'audit

Chaque action privilégiée est consignée dans l'une de ces collections Firestore en écriture seule :

  • security_events — échecs d'authentification, refus RBAC, tentatives d'IDOR, déclenchements de rate-limit
  • impersonation_sessions — sessions du personnel en tant que client, avec sous-collection par action
  • billing_actions — émission de remboursements, motifs de plafond par rôle, chaînes de second approbateur
  • email_log — chaque e-mail sortant avec son type, le motif de suppression et le statut d'envoi
  • webhook_events — verrous d'idempotence des webhooks Stripe / NameSilo / Pax8
  • cron_runs — battement de cœur de chaque tâche planifiée (les exécutions manquantes deviennent visibles)

Contrôles vérifiés dans le code

Les contrôles de sécurité ne sont pas seulement décrits sur cette page — les plus critiques sont vérifiés dans le code, afin que le prochain déploiement ne puisse pas les affaiblir en silence.

  • Garde-fou CI sur les en-têtes de sécurité des réponses : chaque PR exécute un test de fumée vitest qui fait échouer le build si les en-têtes Content-Security-Policy, Cross-Origin-Resource-Policy, anti-clickjacking ou referrer-policy s'écartent de leurs valeurs attendues.
  • Sonde de permissions tierces au démarrage : le backend vérifie au boot que la clé API Stripe configurée dispose de toutes les portées dont dépendent le tableau de bord et les parcours de paiement ; une portée manquante est signalée bruyamment au démarrage plutôt que de se traduire par une panne silencieuse côté client.
  • Des helpers SOQL typés rejettent les identifiants malformés au point d'appel au lieu de les convertir silencieusement en une valeur qui élargirait la requête — une défense contre l'injection SOQL côté intégration.
  • Manifeste de disponibilité des variables d'environnement : chaque service déclare toutes les variables qu'il consomme, marquées requises ou optionnelles, et un endpoint interne indique celles qui manquent sur l'instance en cours — un secret absent apparaît ainsi lors d'une vérification délibérée après déploiement, et non à la première requête client qui en avait besoin.

Conservation des données

Les données opérationnelles sont conservées sur de courtes durées justifiables ; les enregistrements financiers sont gardés pendant les 7 ans exigés par la législation fiscale américaine. Les demandes de suppression des clients sont honorées sous 30 jours pour les données non financières.

Type de donnéesDurée de conservationStockage
Journaux opérationnels (debug, heartbeats)30 joursTTL Firestore sur cron_runs
Journal d'envoi d'e-mails90 joursTTL Firestore sur email_log
Événements webhook (Stripe, etc.)90 joursTTL Firestore sur webhook_events
Paniers abandonnés90 joursTTL Firestore sur carts (status=draft|abandoned)
Enregistrements de paiements échoués1 an après la dernière activitéTTL Firestore sur failed_charges
Événements de sécurité (échec d'auth, refus RBAC)1 anTTL Firestore sur security_events
Audit d'impersonation (personnel en tant que client)IndéfinimentFirestore impersonation_sessions
Enregistrements de renouvellement de domaine (financier)7 ansFirestore domain_renewals + Salesforce Order
Remboursements, actions de facturation7 ansFirestore billing_actions + Salesforce
Paiements réussis, factures, commandes7 ansStripe + Salesforce Order (en miroir)
Données de compte client (actif)Durée de vie du compte + 30 joursSalesforce Account / Contact
Transcriptions de l'assistant IAIndéfinimentSalesforce Chat_Conversation__c + Chat_Message__c
Projets du créateur de sites (Faber)IndéfinimentFirestore faberProjects
Données client après demande de suppression30 jours, sauf ce que nous ne pouvons pas supprimer sur demande : enregistrements de facturation (7 ans), registres de sécurité et d'abus (1 an), ainsi que les transcriptions de l'assistant IA, les registres d'accès du personnel et les projets du créateur de sites (indéfiniment). Les enregistrements de facturation comprennent votre fiche client chez Stripe, dont les cartes enregistrées sont retiréesTâche de purge Salesforce + Firestore

Sous-traitants

Fournisseurs qui traitent des données clients pour notre compte. Chacun opère sous son propre programme de conformité — les liens mènent à leurs pages de confiance publiques.

FournisseurFinalitéRégionConformité
Stripe Traitement des paiements, stockage des cartes (périmètre PCI)États-UnisSOC 1, SOC 2, PCI DSS L1
Salesforce Dossiers clients, commandes, demandes de supportÉtats-UnisSOC 1, SOC 2, ISO 27001, ISO 27018
Google Firebase Authentification, base de données Firestore, hébergementÉtats-UnisSOC 1, SOC 2, SOC 3, ISO 27001, ISO 27017, ISO 27018
Cloudflare CDN, protection DDoS, WAF, accès du personnel (Zero Trust)Edge mondialSOC 2, ISO 27001, PCI DSS
NameSilo Enregistrement de domaines + DNSÉtats-Unis/CanadaRegistrar accrédité ICANN
Pax8 Provisioning de licences Microsoft 365 (CSP)États-UnisSOC 2
Microsoft Boîtes aux lettres Microsoft 365 + hébergement de tenant (géré via administration déléguée)États-Unis (au choix du client)SOC 1, SOC 2, ISO 27001, ISO 27018, HIPAA
Resend Envoi d'e-mails transactionnelsÉtats-UnisSOC 2
Trustpilot Invitations à laisser un avis après un achatUESOC 2 Type 2
Railway Hébergement des conteneurs backend (US-East)États-UnisSOC 2
DigitalOcean Droplets d'hébergement mutualisé PleskÉtats-UnisSOC 2, SOC 3, ISO 27001, PCI DSS
Amazon Web Services Prestations d'hébergement AWS infogéréÉtats-UnisSOC 1, SOC 2, ISO 27001, PCI DSS
Bunny.net CDN + WAF pour les sites clients hébergés, les domaines parqués et les redirectionsEdge mondialGDPR (DPA disponible)
Anthropic Assistant IA (support par chat, routage des requêtes) ; vérification des réponses pour la Visibilité IAÉtats-UnisSOC 2
Perplexity Vérification des réponses pour la Visibilité IAÉtats-UnisSOC 2

Réponse aux incidents et divulgation responsable

  • Contact sécurité : security@squish.co — l'équipe est alertée en temps réel.
  • Politique de divulgation responsable : /.well-known/security.txt
  • SLA de première réponse : sous un jour ouvré.
  • Notification des clients : sous 72 heures après confirmation d'une violation affectant des données clients, conformément à l'article 33 du RGPD.
  • État du système en direct : squish.co/status

Posture de conformité

Aujourd'hui : Squish opère un programme de sécurité auto-attesté, appuyé sur les contrôles décrits ci-dessus. L'essentiel du référentiel SOC 2 Type 1 (contrôle d'accès, chiffrement, journalisation d'audit, gestion des fournisseurs, gestion des changements) est déjà en place ; l'audit formel est sur la feuille de route.

SOC 2 Type 1 : en cours. Attestation visée dans le courant de l'année.

SOC 2 Type 2 : la période d'observation démarre une fois l'attestation Type 1 obtenue.

Pour les équipes achats : nous remplissons volontiers un questionnaire de sécurité (CAIQ-Lite, SIG-Lite ou votre propre format). Contactez-nous à security@squish.co.

Accord de traitement des données (DPA) : notre DPA standard, aligné sur l'article 28 du RGPD et incluant les clauses contractuelles types de l'UE, est publié sur squish.co/dpa et est intégré automatiquement à nos Conditions d'utilisation.

Contacter notre équipe sécuritéVoir les offres d'hébergementVoir les offres e-mail
Page de confiance mise à jour le 4 novembre 2026 · Les changements importants sont signalés en haut de cette page.