Confidentialité et minimisation cryptographique des données
Analytics House fonctionne à 100 % sur Cloudflare Workers et Cloudflare D1. Il est conçu pour que les données personnelles soient nettoyées en mémoire, en périphérie, avant tout stockage, et pour que les sels quotidiens soient détruits de manière cryptographique une fois les agrégats clôturés.
Jamais stocké
- Aucun cookie, et rien n’est écrit dans le stockage du navigateur de vos visiteurs. Les visites sont regroupées côté serveur.
- Aucune adresse IP client ni aucune chaîne
User-Agentbrute n’est jamais écrite sur disque ni dans les journaux. - Aucune chaîne de requête ni aucun fragment d’URL (chemins uniquement), et seul le nom d’hôte du site référent est conservé.
- Les requêtes portant
Sec-GPC: 1(Global Privacy Control) ouDNT: 1(Do Not Track) sont rejetées par défaut avec204 No Content.
Consentement et bandeaux cookies
Le script de suivi ne dépose jamais de cookies et n’écrit jamais dans le stockage du navigateur du visiteur : les visites sont regroupées sur nos serveurs. La seule chose qu’il lit est un indicateur d’opposition (ea_ignore dans localStorage) que le visiteur définit lui-même pour s’opposer au suivi. Les règles de consentement couvrent tout stockage ou accès sur l’appareil, et pas seulement les cookies :
- Royaume-Uni. Depuis le 5 février 2026, les Privacy and Electronic Communications Regulations (telles que modifiées par le Data (Use and Access) Act 2025) autorisent le stockage ou la lecture d’informations sur un appareil sans consentement lorsque le seul objectif est de collecter des statistiques sur l’utilisation de votre site web afin de l’améliorer, que ces informations ne sont pas partagées à d’autres fins, et que les visiteurs en sont clairement informés et disposent d’un moyen simple et gratuit de s’y opposer. Analytics House n’utilise vos données à aucune autre fin. Pour vous appuyer sur cette exception, mentionnez Analytics House dans votre politique de confidentialité et proposez l’option d’opposition décrite ci-dessous.
- Union européenne. Les règles ePrivacy ne prévoient pas d’exception équivalente pour la mesure d’audience. Comme le script de suivi ne stocke rien, la question principale porte sur la lecture de l’indicateur d’opposition ; vérifiez auprès de votre conseiller si votre configuration nécessite un consentement.
- Partout. Vous avez toujours besoin d’une base légale au titre du RGPD (généralement l’intérêt légitime) et d’une politique de confidentialité qui mentionne Analytics House. Notre avenant relatif au traitement des données (DPA) couvre les conditions applicables entre responsable du traitement et sous-traitant.
Proposer une option d’opposition. Les navigateurs qui envoient Global Privacy Control ou Do Not Track ne sont jamais suivis. Vous pouvez aussi ajouter un lien d’opposition à votre politique de confidentialité ; il définit dans le navigateur du visiteur un indicateur que le script de suivi vérifie avant d’envoyer quoi que ce soit :
<a href="#" onclick="localStorage.setItem('ea_ignore','1');this.textContent='You are opted out';return false">
Opt out of website statistics
</a>Cette section est une information générale destinée à vous aider à décider, et non un conseil juridique.
Sel quotidien éphémère et destruction cryptographique
- Chaque jour UTC, un nouveau sel aléatoire de 256 bits est généré via
crypto.getRandomValues()et stocké dans D1 soussalt:YYYY-MM-DD. - Les identifiants de visiteur et de session sont des empreintes à sens unique
SHA-256(daily_salt | day | project_id | ip | ua)tronquées à 64 bits. Le sel secret sert de clé : sans lui, le hachage ne peut pas être recalculé à partir d’une adresse IP. - Lorsque le Cron Trigger exécuté toutes les 15 minutes clôture une journée UTC terminée dans
rollup_dayetrollup_dim,shredExpiredSalts()supprime définitivement de D1 le sel de cette journée. Sans ce sel, les anciens identifiants de visiteurs ne peuvent plus, en pratique, être reliés à des adresses IP ni être reliés entre eux d’un jour à l’autre.
Filtre automatique des données personnelles en périphérie
- Les segments de chemin d’URL contenant des adresses e-mail (
[email]), des UUID ([uuid]), des JWT ([jwt]), des adresses IPv4 ([ip]) ou des jetons secrets à forte entropie ([token]) sont automatiquement masqués avant stockage. - Les propriétés des événements personnalisés sont nettoyées : les clés sensibles (
email,password,token,secret,ssn,phone,api_key, etc.) et les valeurs contenant des données personnelles (y compris les numéros de carte bancaire validés par l’algorithme de Luhn) sont remplacées par[REDACTED]. - Les valeurs
user_idqui ressemblent à des adresses e-mail ou à des UUID (ou toutes les valeursuser_idlorsquestrict_privacyest activé) sont hachées avec le sel quotidien.
Mode sans historique brut et k-anonymat
- Mode sans historique brut (
ephemeral_raw) : supprime les lignes brutes deeventsd’une journée UTC dès que ses tables d’agrégats sont clôturées. - k-anonymat (
k_anonymity) : masque toute ligne de répartition par région ou par ville comptant moins dekvisiteurs uniques (configurable de2à100). - Proxy Worker sans IP sur votre propre domaine : chaque projet fournit, dans ses paramètres, un script Cloudflare Worker prêt à déployer qui supprime les adresses IP des visiteurs à la périphérie de votre propre domaine et transmet une empreinte opaque
X-EA-Visitor-Relay.
Manifeste d’audit de confidentialité en direct
Interrogez GET /projects/:id/privacy (ou GET /public/:token/privacy pour les tableaux de bord partagés) pour consulter en temps réel l’état du sel, les empreintes Subresource Integrity (sha384) et les garanties de confidentialité actives du projet.