Conseils pratiques en matière de protection de la vie privée pour votre entreprise

Image of Adriaan van Rossum

Publié le 28 mai 2020 et modifié le 21 févr. 2024 par Adriaan van Rossum

En tant que fondateur de Simple Analytics, je suis confronté à des problèmes de confidentialité lors de la conception de notre produit. Sur la base de ces apprentissages, j'aimerais vous présenter quelques conseils pratiques pour améliorer la protection de la vie privée de vos visiteurs. Certains conseils semblent très logiques, mais peuvent être difficiles à mettre en œuvre. C'est pourquoi j'ai fourni des exemples pour chaque conseil, afin que vous ou votre équipe puissiez les appliquer sans avoir à faire toutes les recherches nécessaires.

Dans ce billet, j'aborde les services tiers, les fournisseurs de CDN, les widgets sociaux, l'éthique envers vos visiteurs, les courriels de marketing, le stockage des données, les données PII, l'anonymisation IP, le syslog et l'authentification à deux facteurs.

Certains conseils peuvent devenir un peu techniques et si vous n'avez pas de connaissances techniques, n'hésitez pas à les ignorer et à les transmettre à votre équipe technique.

  1. Services tiers
    1. Ne chargez les scripts tiers qu'en cas de besoin
  2. Ne donnez pas trop de pouvoir à votre fournisseur de CDN
    1. Intégrité des sous-ressources
    2. Attribut d'origine croisée
    3. Attribut de politique de référence
    4. Politique de sécurité du contenu
  3. Supprimer les widgets sociaux
    1. Remplacer le bouton de partage de Facebook
    2. Tweets intégrés à Twitter
  4. Ne trompez pas vos visiteurs
    1. Bannières de cookies
  5. Courriels
    1. Courriels de marketing
    2. Suivi des courriels
    3. Images des courriels
    4. Comment conserver une bonne réputation
  6. Où stockez-vous vos données ?
  7. N'enregistrez pas ou ne demandez pas de données IPI lorsque cela n'est pas nécessaire
    1. Ne demandez pas de noms complets...
    2. Anonymisation de l'IP
    3. Désactiver la journalisation IP dans HAProxy
    4. Filtres dans syslog
    5. Utiliser l'authentification à deux facteurs
    6. Conclusion
Logo of the Government of the United KingdomThe UK Government chose Simple AnalyticsJoin them

Entrons dans le vif du sujet.

Services tiers

La plupart des entreprises utilisent de nombreux services tiers. Ils vous aident à fournir un meilleur service à vos clients, ce qui est une excellente chose. Mais il est difficile de savoir si ces services sont respectueux de la vie privée. Vous les connaissez peut-être tous (le GDPR l'exige), mais vous ne savez pas si vous pouvez leur faire confiance. Il est sain de toujours considérer les services tiers comme non fiables et de les utiliser dans votre produit de cette manière. Il existe quelques moyens de limiter leur effet sur vos visiteurs.

Ne chargez les scripts tiers qu'en cas de besoin

De temps en temps, vous devez utiliser des scripts externes. Par exemple, vous pouvez utiliser un service de chat ou un fournisseur de paiement. La solution : Ne chargez ces scripts que sur les pages où vous les utilisez.

Pour un service de chat, il peut s'agir de charger chaque page, mais pour un prestataire de paiement, ce n'est certainement pas la même chose. N'incluez pas ces scripts sur toutes les pages.

Lorsque vous utilisez un chat sur chaque page, vous pouvez faire preuve d'un peu de créativité. Par exemple, vous pouvez avoir un petit bouton qui ne charge le script externe que lorsque vous cliquez dessus.

Il existe plusieurs façons d'y parvenir. Vous pouvez utiliser des services tels que Confirmic, qui offre une fonction de blocage des scripts, ou le faire manuellement.

Voir ces exemples pour savoir comment le mettre en œuvre :

Afficher l'exemple de code Confirmic

Exemple de code manuel

Pour vérifier si votre site utilise des scripts tiers, vous pouvez utiliser le Request Map Generator créé par Simon Hearne (merci à Jan Klimo). Pour Simple Analytics, cela ressemble à ceci :

Third-party scripts of Simple Analytics

Dans le diagramme ci-dessus, vous ne voyez que les requêtes allant vers les serveurs de Simple Analytics: simpleanalytics.com, simpleanalyticscdn.com, et simpleanalytics.io. Le gros cercle rose est la vidéo de notre page d'accueil qui consomme le plus d'octets. Nous utilisons également un fournisseur de paiement externe, mais nous ne chargeons le script que lorsque le client clique sur l'inscription, c'est pourquoi vous ne voyez aucun script externe sur cette image.

Comparez cela à un autre SaaS comme Intercom :

Third-party scripts of Intercom

De nombreux scripts externes sont chargés à partir de toutes sortes de domaines différents. Je ne dis pas que c'est bon ou mauvais, mais c'est une bonne pratique de vérifier si toutes ces parties externes sont nécessaires. Lancez le générateur de cartes de demandes et voyez quels sont les services dont vous n'avez pas besoin.

N'oubliez pas que toutes les parties externes peuvent accéder aux données affichées sur la page. Si vos visiteurs sont connectés et voient des données critiques, ces parties externes peuvent également les voir.

Ne donnez pas trop de pouvoir à votre fournisseur de CDN

Si vous utilisez un CDN, vous lui donnez des données sur vos visiteurs et le pouvoir de charger un script différent de celui demandé par vos visiteurs.

Intégrité des sous-ressources

Pour éviter que votre fournisseur de CDN n'altère la source de vos scripts, vous pouvez utiliser l'intégrité des sous-ressources (SRI ; l'attribut d'intégrité de vos scripts). Vous devez créer un hachage de la source du script et l'inclure dans la balise du script via l'attribut integrity. Pour générer le hachage d'intégrité, vous pouvez utiliser srihash.org ou report-uri.com.

<script src="https://cdn.example.com/script.js" integrity="sha384-..."></script>

Attribut d'origine croisée

L'attribut de contenu crossorigin sur les éléments média est un attribut de configuration CORS. Il est nécessaire pour charger des scripts provenant d'autres domaines (un domaine CDN par exemple). Le mot clé anonymous signifie qu'il n'y aura pas d'échange d'informations d'identification de l'utilisateur via des cookies et d'autres données entre votre site web et d'autres domaines.

Vous le spécifiez comme suit

Attribut de politique de référence

Pour éviter qu'ils ne sachent quelle page vos visiteurs consultent, vous pouvez ajouter l'attribut referrerpolicy avec une valeur no-referrer à vos balises de script.

Afficher l'exemple de code

Bien que vous n'envoyiez pas le référent ici, le navigateur envoie l'en-tête d'origine avec les requêtes CORS. Cela signifie que votre fournisseur CDN obtient toujours le domaine sur lequel vos visiteurs atterrissent. S'il enregistre les adresses IP, il peut suivre le comportement de navigation de vos visiteurs. Ce problème ne peut être résolu qu'en choisissant un fournisseur de CDN qui anonymise les adresses IP. Le seul fournisseur CDN qui propose actuellement l'anonymisation des adresses IP est BunnyCDN (nous ne sommes pas affiliés à BunnyCDN).

Si vous combinez toutes les caractéristiques ci-dessus, le code HTML ressemblera à ceci

Si vous ajoutez des scripts de manière dynamique, vous pouvez spécifier les caractéristiques ci-dessus en tant que propriétés. Les propriétés sont sensibles à la casse.

CrossOrigin et ReferrerPolicy comportent tous deux une majuscule.

Politique de sécurité du contenu

Pour ajouter une couche de sécurité supplémentaire au script que vous chargez, vous pouvez utiliser une politique de sécurité du contenu (CSP). La PSC est une couche de sécurité supplémentaire qui permet de détecter et d'atténuer certains types d'attaques (notamment les attaques de type Cross Site Scripting (XSS) et les attaques par injection de données).

Vous pouvez créer votre politique de plusieurs manières : en utilisant un serveur auquel les navigateurs envoient automatiquement un rapport (ou en utilisant un service comme report-uri.com ou Csper qui le fait pour vous) ou en générant un rapport vous-même. Il existe des outils pour vous aider à créer un rapport vous-même : Report URI et cspisawesome.com proposent un assistant, 4ARMED et Csper proposent une extension de navigateur, et Mozilla dispose d'une excellente documentation.

Lorsque vous avez créé votre politique, vous pouvez la spécifier via une balise &lt;meta&gt; ou un en-tête.

Vous craignez de bloquer des ressources importantes ? Testez votre CSP en utilisant Content-Security-Policy-Report-Only pour n'envoyer que des rapports sans blocage.

Supprimer les widgets sociaux

Les entreprises de médias sociaux ont la mauvaise réputation de collecter des données sur vos visiteurs. Il existe de nombreux plugins et moyens de suivre les utilisateurs. Vos visiteurs ne choisissent pas d'être suivis par ces entreprises, c'est vous qui le faites.

Si vous êtes un visiteur, il est recommandé d'utiliser un bloqueur de publicité comme uBlock Origin. Il s'agit d'une extension de navigateur bien développée qui supprime tous les traceurs et toutes les publicités de vos visites. Un bouton géant permet de le désactiver pour le site sur lequel vous vous trouvez. Cela rend votre expérience de navigation plus sûre.

Vos visiteurs peuvent faire quelque chose eux-mêmes, mais il y aura toujours des gens qui ne sont pas au courant de ce suivi ou qui ne savent pas comment l'empêcher. C'est pourquoi l'UE a adopté le GDPR, la Californie le CCPA, le Brésil le LGDP et le Royaume-Uni le PECR.

Photo by Daria Nepriakhina on Unsplash

Le 29 juillet 2019, la Cour de justice de l'Union européenne (la "CJUE") a statué qu'une entreprise intégrant sur son site web un plugin social, tel qu'un bouton "J'aime" de Facebook, peut être considérée comme un responsable du traitement des données [...] - fieldfisher.com

Bien que vous ne contrôliez pas ce que les plateformes derrière vos widgets font avec les données de vos clients, vous êtes toujours responsable de ce qu'il advient de ces données.

Remplacer le bouton de partage de Facebook

Lorsque vous ajoutez un widget Facebook tel qu'un bouton de partage, Facebook vous recommande d'utiliser ses scripts. C'est une bonne chose pour eux car ils peuvent collecter plus de données sur vos visiteurs. Heureusement, Facebook propose une autre façon de procéder sans utiliser ses scripts.

Voici un exemple avec des boutons personnalisés et un simple lien de partage. Je recommande vivement d'utiliser l'implémentation de liens au lieu de l'implémentation de scripts.

sharing-on-social-media.png

Veillez à ajouter rel="noopener" ou rel="noreferrer" pour empêcher d'autres pages d'accéder à votre objet window avec la propriété window.opener. Cela pourrait permettre à l'autre page de rediriger votre page vers une URL malveillante. C'est ce qu'on appelle le tabnabbing inversé. Edit : Les navigateurs définissent implicitement rel=noopener pour tout lien target=_blank depuis 2021.

HTML pour les boutons ci-dessus

CSS pour les boutons ci-dessus

Le lien mis en œuvre est un simple lien qui ouvre la page de partage Facebook pour vos visiteurs. Vous pouvez placer le lien derrière un bouton ou un lien texte sur votre site web.

L'implémentation d'un lien expliquée pour les non-techniciens

Supposons que vous ayez besoin de ce lien pour Facebook :

Vous voyez beaucoup de caractères bizarres dans cette URL (lien). C'est parce que le lien est codé en URL. Utilisez urlencoder.io pour encoder facilement votre site web :

Préfixez la sortie d'urlencoder.io avec https://www.facebook.com/sharer/sharer.php?u= et ajoutez &src=sdkpreparse derrière et vous avez votre lien de partage Facebook. Sans le suivi et la collecte de données portant atteinte à la vie privée. Vous pouvez maintenant partager ce lien avec vos développeurs ou l'utiliser dans le CMS de votre site web marketing.

Tweets intégrés à Twitter

Sur Internet, le widget Twitter est souvent utilisé. Mais est-il nécessaire d'envoyer les données de vos visiteurs à Twitter lorsqu'ils veulent simplement voir un tweet ? Une capture d'écran suffit amplement :

Embedded tweet

Ne trompez pas vos visiteurs

Inciter vos visiteurs à faire quelque chose qu'ils ne veulent pas faire est une mauvaise chose, et vous ne devez pas le faire. Parfois, il est bon d'ouvrir votre site web et de suivre votre flux comme un nouveau client. Soyez attentif aux éléments qui ne sont pas clairs et à toutes les fenêtres contextuelles que vous voyez.

Bannières de cookies

En naviguant sur l'internet, vous trouverez de nombreux exemples de sites web qui essaient de vous piéger en vous demandant d'accepter de vous suivre à la trace.

Par exemple, la page d'accueil du New York Times. Lorsque vous voyez une croix (X), vous fermez normalement une boîte de dialogue sans accepter ce qui vous est demandé. Pour le New York Times, il s'agit simplement d'un "je suis d'accord" :

New York Times cookie banner

S'il vous plaît, ne faites pas cela.

Courriels

Cette question est liée à celle de ne pas piéger vos visiteurs, mais j'aimerais consacrer une section distincte aux courriels uniquement.

Courriels de marketing

Si vous avez une entreprise, il est très utile d'utiliser l'adresse électronique de vos clients. Utilisez-la à bon escient pour les informer des nouvelles fonctionnalités, les aider à utiliser votre outil, etc. C'est un avantage pour votre entreprise. C'est un avantage pour votre entreprise. Mais si vous envoyez des courriels de marketing à vos clients, assurez-vous qu'ils souhaitent être abonnés. Vous pouvez leur demander, lors de l'inscription, s'ils sont d'accord pour que vous leur envoyiez des courriels sur votre outil/service, ou s'ils sont d'accord pour que vous leur envoyiez des guides d'installation ou des conseils. Si vous précisez l'usage que vous ferez de leur adresse électronique, veillez à ne l'utiliser qu'à cette fin.

Suivi des courriels

Il est plus difficile de désactiver le suivi des courriels que de l'activer. C'est pourquoi la plupart des courriels de marketing contiennent des traceurs. Le taux d'ouverture est considéré comme inexact en raison de la désactivation des images par les clients :

[...] un courriel n'est comptabilisé comme "ouvert" que si le destinataire reçoit également les images incorporées dans ce message, et un grand pourcentage de vos utilisateurs de courriel ont probablement activé le blocage des images sur leur client de courriel. [...] - blog.hubspot.com

Images des courriels

Lorsqu'un email contenant beaucoup d'images n'est pas entièrement téléchargé et qu'il est visualisé par l'utilisateur, il peut finir par s'afficher comme ceci pour l'abonné :

Tweet by Fabio Carneiro found on a blog by LitmusTweet de Fabio Carneiro

Lorsque vous ajoutez des images à vos courriels et que vous ne les intégrez pas dans les courriels, ils peuvent être très laids. De plus en plus de services de messagerie vont cesser d'afficher les traqueurs d'emails et donc les images. Le nouveau service HEY.com bloque les pixels de suivi. Je suppose que d'autres suivront.

Avec Simple Analytics, nous aimons partager des rapports hebdomadaires et mensuels par courriel. Lorsque les clients l'ont activé, nous leur envoyons un courriel avec toutes les images intégrées. Pas de traceurs ni d'images distantes. Pas besoin de se connecter à quoi que ce soit en dehors de leur client de messagerie. Rendez-leur leur vie privée : ils le méritent !

Email reports feature of Simple AnalyticsFonction de rapports par courriel de Simple Analytics

Comment conserver une bonne réputation

Un autre aspect des e-mails marketing est l'en-tête de désabonnement. Veillez à ce que cet en-tête soit configuré, car il améliore la réputation de votre e-mail. L'en-tête pourrait ressembler à ceci :

List-Unsubscribe : <https://example.com/unsub/?uuid=14b2-b2a1>, <mailto:unsubscribe@example.com>

Dans de nombreux clients de messagerie, le lien de désabonnement est placé à proximité du bouton "spam". Vous voulez que les gens se désabonnent au lieu d'appuyer sur le bouton spam pour éviter de nuire à votre réputation.

Où stockez-vous vos données ?

Il est important de stocker vos données dans un pays qui protège la vie privée de ses habitants et de ceux qui vivent à l'étranger. Pour Simple Analytics, nous avons déplacé nos serveurs en Islande, car nous avons estimé qu'il s'agissait du meilleur pays en termes de protection de la vie privée. Selon la liste des scores de liberté d'Internet de Freedom House, l'Islande reste la meilleure option :

Freedom House Internet Freedom ScoresListe des scores de liberté d 'Internet de Freedom House ou Islande uniquement.

Nous avons réalisé par la suite que l'Islande n'était pas la meilleure option en termes de fournisseur d'accès.

Voici pourquoi

<ol><li>L'initiative islandaise pour des médias modernes a été adoptée par le parlement mais n'a pas été transposée en loi (ce n'est donc pas le paradis de la liberté d'Internet que nous pensions).</li><li>Notre fournisseur prétendait être le plus important d'Islande, mais il n'était pas aussi mature que les grands fournisseurs d'Europe, ce qui mettait en péril la sécurité de nos serveurs et de notre infrastructure.</li><li>Il y a eu des interruptions de service deux fois cette année.</li><li>Les câbles internet vers l'Islande sont plutôt lents. Bien qu'ils soient géographiquement idéaux - situés entre l'Amérique du Nord et l'Europe - en pratique, les Pays-Bas sont un endroit plus rapide pour les deux.</li><li>Nous ne voulons pas déménager en Suisse, car ce serait uniquement une opération de marketing. L'UE offre de meilleures lois en matière de protection de la vie privée que la Suisse.</li><li>Nous devons de toute façon déménager parce que notre fournisseur actuel n'offre pas les serveurs puissants dont nous avons besoin.</li><li>Le deuxième plus grand fournisseur d'Islande a légalement son siège à Hong Kong, qui n'est pas l'endroit où nous voulons stocker nos données.</li></ol><blockquote>

Copié à partir de notre page de documentation sur les emplacements.

</blockquote>

Nous avons demandé à nos clients s'ils étaient d'accord avec le transfert de l'Islande vers les Pays-Bas et tous ceux qui ont voté ont approuvé notre décision.

Soyez conscient de l'endroit où vous placez les données de vos visiteurs. Faites des recherches sur le fournisseur d'hébergement que vous utilisez et sur le pays où il est hébergé. Ne choisissez pas l'option la moins chère sans savoir pourquoi elle est bon marché.

N'enregistrez pas ou ne demandez pas de données IPI lorsque cela n'est pas nécessaire

Les informations personnelles identifiables (IPI) sont des informations qui, utilisées seules ou avec d'autres données pertinentes, permettent d'identifier une personne. Il arrive encore assez fréquemment que des sites web ou des applications vous demandent de fournir des informations personnelles dont ils n'ont même pas besoin.

Ne demandez pas de noms complets...

...sauf si vous en avez vraiment besoin. Laissez les gens décider eux-mêmes d'ajouter leur nom complet. Demandez simplement un prénom si vous voulez vous adresser à des personnes dans vos courriels de marketing, mais ne demandez pas un nom complet.

Pour les lecteurs qui en ont assez de trouver des faux noms, il existe de nombreux services qui permettent de créer un faux nom.

Anonymisation de l'IP

Cette partie est plutôt technique, alors soyez indulgent avec moi. Si vous êtes directeur, veuillez transmettre ce document à vos développeurs. L'anonymisation des adresses IP est la chose la plus logique à faire sur vos serveurs lorsqu'il s'agit de protection de la vie privée. Pourtant, il n'y a pas beaucoup d'exemples de la manière de le faire. De nombreux processus (applications) sur vos serveurs enregistrent des données. Par exemple, NGINX enregistre par défaut des données sur toutes les requêtes qui lui parviennent (il est toutefois possible de les personnaliser). C'est une bonne chose pour le débogage, mais c'est moins bon pour la vie privée de vos utilisateurs. Avec NGNIX, vous ne pouvez pas formater les journaux d'erreurs, de sorte que les erreurs se présenteront toujours dans le même format. Ce format est très peu respectueux de la vie privée car il contient l'adresse IP complète de l'utilisateur et généralement le User-Agent (qui peut contenir des identifiants peu clairs lors de l'utilisation de l'application Facebook).

Vous pouvez probablement deviner quelques-uns des éléments de ce suffixe User-Agent de Facebook, mais tout n'est pas clair pour moi : [FBAN/FBIOS;FBAV/221.0.0.0.0;FBBV/154514034;FBDV/iPhone9,4;FBMD/iPhone;FBSN/iOS;FBSV/12.3.0;FBSS/3;FBCR/Siminn;FBID/téléphone;FBLC/en_GB;FBOP/5;FBRV/155138002] Il ne semble pas qu'ils suivent leurs utilisateurs via le suffixe User-Agent, mais ils altèrent au moins l'User-Agent.

Désactiver la journalisation IP dans HAProxy

Pour créer votre propre journalisation pour les messages d'erreur et les messages normaux, vous pouvez personnaliser le format de votre journal. La meilleure explication se trouve sur le blog haproxy.com. Voir notre exemple de code pour savoir comment nous enregistrons :

Config pour désactiver la journalisation IP dans HAProxy

Un exemple de sortie :

Filtres dans syslog

Simple Analytics utilise NGINX qui, dans notre cas, enregistre les logs dans rsyslog, souvent appelé syslog. rsyslog est souvent inclus dans les distributions Linux(site officiel). Heureusement, rsyslog est accompagné d'un excellent module appelé mmanon. Ce module peut être utilisé pour filtrer les adresses IP v4 et v6 à partir de la version 7.3.7 de rsyslog.

Comment implémenter l'anonymisation avec rsyslog

Sur votre serveur, vous pouvez vérifier quelle version de <em>rsyslog</em> vous avez en exécutant rsyslogd -v.

Vous pouvez activer l'anonymisation IP en ajoutant les lignes suivantes à votre fichier de configuration <em>rsyslog</em>. Le fichier de configuration se trouve généralement dans /etc/rsyslog.conf ou /etc/rsyslog.d/50-default.conf.

Après avoir modifié ce fichier, veillez à redémarrer <em>rsyslog</em> avec service rsyslog restart.

<h4>Niveau suivant de syslog</h4>

Si vous voulez aller plus loin, vous pouvez mettre en place des filtres avancés pour supprimer les données sensibles de vos fichiers de log ou de vos services de log.

Vous pouvez créer un fichier de configuration syslog dans /etc/syslog/.... J'ai créé un fichier appelé /etc/rsyslog.d/30-anonymize.conf contenant :

Vous pouvez faire bien plus, dans notre configuration nous cachons les IP, les cartes de crédit et les agents utilisateurs.

Utiliser l'authentification à deux facteurs

Ce point est plus lié à la sécurité qu'à la protection de la vie privée, mais il est important dans les deux cas.

Si vous voulez sécuriser les données de vos utilisateurs et empêcher d'autres personnes d'accéder à leurs données, utilisez un système d'authentification à deux facteurs. N'utilisez pas de SMS. Utilisez TOTP (Time-based One-time Password) qui dispose de nombreuses applications et intégrations. Il ne nécessite pas de connexion internet et peut être installé sur plusieurs appareils.

Conclusion

En travaillant sur Simple Analytics, je lutte constamment contre le statu quo en trouvant des moyens respectueux de la vie privée pour traiter les données des visiteurs. Il existe trop peu de lignes directrices sur la façon d'empêcher le suivi dans votre propre entreprise.

Lire la discussion sur Hacker News

J'espère que cet article rendra le web un peu plus respectueux de la vie privée. N'hésitez pas à me faire part des conseils que je devrais ajouter.

GA4 est complexe. Essayez Simple Analytics

GA4, c'est comme être assis dans le cockpit d'un avion sans licence de pilote

Commencer gratuitement maintenant