Créer des exceptions pour Piwik dans uBlock Origin

closeCet article a été publié il y a 7 ans 6 mois 13 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

J’ai déjà eu l’occasion de parler de Piwik, et de la raison pour laquelle il était bien plus respectueux de vos choix. Malheureusement au détour d’un des nombreux filtres d’ublock origin, existe une règle pour le bloquer purement et simplement. Si certains ont un contournement côté serveur, et c’est quelque chose que j’ai mis en place, il y a aussi une astuce côté client pour ceux qui veulent soutenir l’utilisation de Piwik sans cautionner d’autres pratiques. Un choix à la carte donc.

Rappel du fonctionnement de Piwik

La « prise de visite » prend deux formes sous Piwik : un code JavaScript qui permet d’obtenir beaucoup d’informations, et notamment sur le temps de lecture, et un autre sous la forme d’une « image » générée par un script PHP (en fait une image inivisible), qui permet d’enregistrer la visite à partir des données du navigateur, vu par le serveur ce coup-ci.

Pourquoi deux dispositifs ? Ceci afin d’assurer la bonne prise en compte de la visite si le navigateur est un dispositif dont le fonctionnement du JavaScript n’est pas bon, voire tout simplement désactivé. Dit comme ça, ça parait retors, mais il faut se souvenir que si vous avez correctement paramétré votre navigateur pour envoyer l’entête HTTP DNT, pour Do Not Track, qui veut littéralement dire « ne pas me tracer », Piwik vous ignorera car il respecte cette norme. Les autres trackers, mon cul.

Blocage sélectif

C’est sur le site de ma propre équipe, sur lequel on utilise Piwik, que j’ai découvert d’autres saloperies. Ni une ni deux, j’ai réactivé le bloqueur de pubs et j’ai cherché un moyen de whitelister Piwik, et seulement lui.

Pour être tout à fait honnête, c’est en partie grâce à l’interface du journal de blocage de Piwik que j’ai pu avancer sur la création des DEUX règles nécessaire au whitelistage de Piwik. On se rend donc dans le tableau de bord d’uBlock Origin (sisi, c’est le lien direct), et on peut ajouter ses propres règles. Donc pour le site www.clantoc.org, ça donne ça :

C’est la deuxième qui m’a posé le plus de problème. En effet, dans le journal de blocage, l’appel à piwik.php est assorti de pas mal de paramètres, qui changent évidemment à chaque affichage puisqu’il contient une donnée temporelle. Donc à chaque fois que j’ajoutais une règle, elle devenait aussitôt inefficace.

Décryptage : le @@|| permet de dire que l’on doit accepter le contenu et pas le bloquer, la première URL concerne le chemin vers les scripts Piwik, qu’on conseille de poser sur son propre domaine, avec très souvent une certaine paresse dans la définition de son propre domaine (et celui de ce blog ne fait pas exception). La mention $script ou $image permet de définir le type de contenu tel qu’il sera détecté par le navigateur (via les entêtes HTTP et les types MIME), et enfin le domain=… c’est le site sur lequel le filtre s’applique.

A adapter pour tous les sites ?

Je suis persuadé qu’il ne faut pas grand chose pour adapter cette règle pour qu’elle invalide celle passe-partout qui est présente dans les filtres de bases, à savoir débloquer Piwik pour tous les sites, et pas seulement un par un. Mais c’est avec un mélange de paresse et d’échecs dus à des essais infructueux (coucou les regex) que je vais vous demander si vous connaissez la solution et la partager dans les commentaires de ce billet.

7 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
PPmarcel
12/10/2016 14:04

Je pense que tu es parti dans le mauvais sens. Il vaut mieux rendre piwik compatible avec les blocker. Je suppose que tu utilises la liste Easyprivacy avec ton ublock. Il recherche le pattern /piwik dans les URL pour faire son blocage. Donc au lieu d’appeler la sonde classique, tu peux utiliser l’appel qui est dans le code de piwik, /js/index.php. Il sert un piwik.js minifié et surtout un peu caché. J’ai fais ça sur mon site et depuis mon tracker n’est plus bloqué par ublock. Il y a de la doc dans /js/README.md. Il y a aussi un doc… Lire la suite »

SMed79
16/10/2016 04:12

un seul filtre @@/piwik.$image,script,~third-party,domain=clantoc.org

@PPmarcel Merci respecter la vie privée de vos visiteurs qui ont choisi de ne pas être pisté en installant Easyprivacy.

Nitrome
Nitrome
19/11/2016 23:55

Sur un de mes sites, j’ai choisis l’option du htaccess qui va simplement rewrite l’url des fichiers Piwik.(js[php) :
RewriteRule ^stats/pwikpwik.php$ stats/piwik.php [PT]
RewriteRule ^stats/pwikpwik.js$ stats/piwik.js [PT]

Ainsi, tous les bloqueurs de publicité passent à côté.

Quant à l’option de privacy, elle est désactivable pour ignorer le DNT, donc de la à dire que Piwik respecte le DNT, c’est plutôt l’administrateur qui en est responsable http://img.imgland.net/7-Q86ik.png

Nitrome
Nitrome
22/11/2016 00:52
Répondre à  Seboss666

Effectivement, après avoir posté ce message j’ai lu tout ton blog (des tonnes d’articles intéressants), et j’ai vu que tu utilisais Nginx, autant pour moi 🙂