Quand un éditeur SaaS m'appelle pour un audit de conformité, je commence par une question simple : « Sortez-moi votre registre des traitements. » Dans 7 cas sur 10, il n'existe pas, ou il tient sur un fichier texte oublié. Huit ans après l'entrée en application du RGPD, la conformité reste un angle mort pour beaucoup d'éditeurs SaaS, surtout les petites structures qui construisent vite et documentent peu. Pourtant, avec la montée en puissance des contrôles automatisés de la CNIL et la vague d'amendes publiques, l'improvisation n'est plus tenable. Je te partage ici la checklist que j'applique sur mes projets Symfony et que je déroule avec mes clients.
Pourquoi un SaaS déclenche des obligations RGPD renforcées
Un SaaS traite par nature des données personnelles : celles des utilisateurs, de leurs clients finaux, parfois de tiers (prestataires, prospects). Il cumule donc plusieurs casquettes : responsable de traitement pour ses propres utilisateurs, sous-traitant pour les données que ses clients y déposent. Chaque casquette apporte ses obligations.
Les chiffres publics parlent d'eux-mêmes. En 2025, la CNIL a prononcé 83 sanctions publiques pour un montant cumulé de 486 millions d'euros (source : bilan sanctions 2025 CNIL). Sur les dossiers concernant des SaaS et services en ligne, les griefs dominants restent constants : insuffisance de sécurité (mots de passe faibles, comptes partagés), non-respect des droits des personnes (refus d'effacement ou d'accès), gestion défaillante des cookies et traceurs, défaut de coopération avec l'autorité. La checklist ci-dessous attaque précisément ces angles morts.
Les 32 points de la checklist RGPD SaaS
Gouvernance et documentation (6 points)
- Registre des traitements à jour, format CNIL, relu semestriellement
- Politique de confidentialité publique, datée, versionnée
- Mentions légales complètes (éditeur, hébergeur, directeur de publication)
- Désignation d'un référent protection des données (DPO si obligatoire, sinon référent interne)
- Analyse d'impact (AIPD) réalisée pour les traitements à risque
- Registre des incidents de sécurité, même vide
Bases légales et finalités (5 points)
- Chaque traitement est rattaché à une base légale identifiée (contrat, consentement, intérêt légitime, obligation légale)
- Les finalités sont décrites de manière concrète, pas en jargon juridique
- Le consentement, quand il s'applique, est libre, éclairé, spécifique, révocable
- Les cases à cocher ne sont jamais pré-cochées
- Le refus des cookies non essentiels est aussi facile que l'acceptation
Droits des personnes (6 points)
- Procédure d'exercice des droits (accès, rectification, effacement, portabilité) documentée
- Canal de contact dédié (email ou formulaire)
- Délai de réponse respecté : un mois maximum
- Export des données utilisateur disponible dans un format machine-lisible (JSON, CSV)
- Suppression de compte possible depuis l'interface, sans intervention humaine
- Traçabilité des demandes dans un registre
Sous-traitants et transferts (5 points)
- Cartographie complète des sous-traitants (hébergeur, email, CRM, analytics, stockage)
- Contrat de sous-traitance article 28 signé avec chacun
- Localisation des données connue pour chaque sous-traitant
- Transferts hors UE encadrés par clauses contractuelles types ou décision d'adéquation
- Revue annuelle de la liste des sous-traitants
Sécurité technique (6 points)
- Chiffrement TLS de bout en bout
- Hachage des mots de passe avec un algorithme moderne (argon2id, bcrypt coût 12 minimum)
- Double authentification disponible pour les comptes administrateurs
- Journalisation des accès aux données sensibles, conservation 6 à 12 mois
- Sauvegardes chiffrées, testées régulièrement
- Procédure de notification d'incident sous 72 heures
Cycle de vie des données (4 points)
- Durées de conservation définies pour chaque catégorie de données
- Suppression ou anonymisation automatique à l'échéance
- Archivage intermédiaire distinct de la base active
- Purge documentée lors de la résiliation d'un compte client
Les trois pièges qui reviennent dans mes audits
D'expérience, sur les SaaS français que j'audite, trois erreurs reviennent systématiquement.
Premier piège : la cascade Google. Un cabinet médical que j'ai accompagné utilisait Google Analytics, Google Workspace, Google Fonts en CDN, et reCAPTCHA. Chacune de ces briques transfère des données vers les États-Unis. Individuellement, ça semble anodin. Cumulé, ça rend l'AIPD difficilement défendable. Nous avons migré vers Matomo auto-hébergé, Infomaniak pour la messagerie, des polices servies localement, et Friendly Challenge pour la protection anti-bot. Résultat : zéro transfert hors UE, et un score Lighthouse en hausse de 18 points grâce à la suppression des appels externes.
Deuxième piège : le contrat de sous-traitance oublié. L'éditeur signe une offre d'hébergement en ligne, coche les CGU, et passe à autre chose. L'article 28 du RGPD impose pourtant un contrat de sous-traitance écrit, précisant durées, catégories de données, obligations de sécurité, sort des données en fin de contrat. Les grands hébergeurs européens (Scaleway, OVH, Infomaniak) fournissent ce contrat en téléchargement dans leur console. Encore faut-il aller le signer et le classer.
Troisième piège : la suppression qui n'en est pas une. Quand un utilisateur demande l'effacement, beaucoup d'éditeurs se contentent de marquer le compte « désactivé ». Les données restent en base. Ce n'est pas conforme. Il faut soit supprimer physiquement, soit anonymiser de manière irréversible (hash sans sel, remplacement par des valeurs neutres).
Focus Symfony : les outils qui m'aident à construire conforme
Sur la stack que j'utilise quotidiennement (Symfony en version LTS, Doctrine, MariaDB — parfois PostgreSQL selon les contraintes client, Redis), plusieurs briques techniques aident à tenir la conformité sans efforts surhumains.
- Un bundle de chiffrement de champs Doctrine (par exemple
ambta/doctrine-encrypt-bundle) ou un EventListener maison adossé à libsodium pour chiffrer au repos les champs sensibles (numéros de sécurité sociale, informations de santé) - Monolog avec un processeur qui masque les données personnelles avant écriture dans les logs
- Symfony Security avec argon2id par défaut pour le hachage des mots de passe, et l'attribut
#[IsGranted]pour tracer les accès - Messenger pour asynchroniser les exports RGPD, souvent lourds
- Commandes console planifiées pour la purge automatique des comptes inactifs au-delà de la durée de conservation
Combien de temps pour atteindre la conformité ?
| Niveau de départ | Effort de mise en conformité |
|---|---|
| Aucune documentation, stack full US | 6 à 10 jours |
| Politique de confidentialité existante, stack mixte | 3 à 5 jours |
| Stack européenne, documentation partielle | 1 à 2 jours |
Le budget dépend du périmètre, de la sensibilité des données traitées et du livrable attendu. Je travaille systématiquement sur devis personnalisé, calé après un échange initial gratuit de 30 minutes.
Un de mes clients éditeur d'un SaaS de gestion pour cabinets d'infirmières libérales est passé du premier au troisième niveau en six semaines. Le chantier lourd a été la migration hors Google Workspace et le déploiement d'un export RGPD complet. Retour sur investissement rapide : deux mois après, il a remporté un appel d'offres public dont un critère d'exclusion était « aucun transfert hors UE ».
Passer à l'action
Si tu édites ou développes un SaaS et que la checklist ci-dessus t'a fait transpirer, c'est probablement le bon moment pour un diagnostic. Je propose un audit de conformité d'une journée qui couvre les 32 points, produit un rapport hiérarchisé, et donne un plan d'action à 90 jours. Le formulaire de contact du site permet de caler un premier échange gratuit de 30 minutes.