Adblock

extension antipub pour Mozilla/Firefox

Télécharger la liste:
adblock.txt (3 Ko)
(bloque les pubs et les stats)
adblock_basic.txt (2,3 Ko)
(bloque les pubs uniquement)
Dernière MAJ: 5 janvier 2013 Quelques précisions

lapub® déclarée source de stress
par votre corps

Sur cette page nous parlerons d'exploiter au maximum les possibilités d'Adblock, et de détailler quelques subtilités du filtrage de la pub. (Pour éviter tout malentendu, je tiens à préciser que ce site n'est pas le site officiel d'Adblock, qui lui se trouve ici.)

La section userContent.css explique comment bloquer avec Firefox des éléments impossible à bloquer avec Adblock. Dans la section liens, vous trouverez également le moyen de bloquer les cadres de pubs Lycos.


Un problème ? Une remarque ? N'hésitez pas à me .

Qu'est-ce que c'est ? Comment ça marche ?

Adblock est une extension pour les navigateurs Mozilla. Cette extension ajoute un élément au menu contextuel lorsqu'on clique avec le bouton droit de la souris sur une image. Ainsi, dès qu'une image nous gêne, il suffit de faire un clic droit dessus et de cliquer sur "Adblock Image" pour que celle-ci disparaisse. L'URL de l'image est ajouté dans une liste disponible en allant dans le menu Outils -> Adblock -> Préférences (également accessible par la combinaison de touche CTRL+SHIFT+P). Adblock rajoute également une petite étiquette sur les animations Flash, les fichiers Java et les musiques de fond de page pour permettre aussi de les bloquer (étiquette que l'on peut désactiver via Options -> Obj-Tabs).

L'installation d'Adblock ajoute un lien dans la barre d'état du navigateur. En cliquant dessus, une fenêtre apparaît et affiche l'ensemble des éléments (images, frames, fichiers Flash, scripts, etc.) qui peuvent être bloqués. Les éléments qui sont déjà bloqués apparaissent en rouge. En cliquant sur un des éléments bloqués, on peut voir quel filtre a été appliqué.

Adblock permet l'importation et l'exportation d'une liste. Pour cela, il suffit de se rendre dans le menu des options, disponible dans les préférences. Sachez qu'une liste importée doit toujours commencer par la ligne suivante :

[Adblock]

En outre, aucune ligne vierge n'est autorisée, contrairement à la plupart des autres systèmes de blocage de la pub. Voici un exemple de liste :

[Adblock]
doubleclick.*
valueclick.*
adknowledge.*
extreme-dm.*
bluestreak.*
nedstatbasic.*
realmedia.*
googlesyndication.*
banner-view.de
espotting.com
ads8.com
http://ad.*
http://ads.*
http://www.clubic.com/ads
http://www.sports.fr/fr/images/pubs
http://www.fortunecity.com/banners
http://www.hebdotop.com/cgi-bin/vote.eur

Chacune des lignes d'une liste est appelée un "filtre". Deux types de filtres sont possibles, que l'on va appeler "filtres simples" et "RegExp".

Filtres simples.

Un filtre simple est une chaîne de caractères composée de tout ou partie d'un URL, c'est à dire de l'adresse d'un fichier. Le cas le plus simple, c'est de faire un clic droit sur une image puis de cliquer sur "Bloquer l'image avec Adblock" : vous venez ainsi de créer un filtre simple composé de la totalité de l'URL de l'image. Les URL blocable apparaissent en cliquant sur le lien Adblock de la barre d'état (raccourci-clavier : CTRL-SHIFT-A). En choisissant un URL parmi la liste puis en cliquant sur OK, vous créerez à nouveau un filtre simple composé de la totalité de l'URL de l'objet bloqué. De cette manière, le filtre qui a été créé va se contenter de bloquer un seul fichier de l'ensemble du Web.

Maintenant, il est possible de créer des filtres simples composés d'une partie seulement de l'URL. En affichant la fenêtre des objets filtrables ou bien celle des préférences, vous pouvez entrer manuellement un filtre dans la zone de saisie "Nouveau filtre". En entrant, par exemple, la chaîne "ad.cibleclick.com" (cibleclick est une régie publicitaire), tous les fichiers provenant de ce serveur seront bloqués. On pourrait même simplifier et écrire simplement "cibleclick", puisqu'il est peu probable que ce mot désigne autre chose que la régie publicitaire.

Tous les filtres de la liste précédente sont des filtres simples. Remarquez le caractère étoile (astérisque) : *. C'est un meta-caractère appelé joker et qui remplace n'importe qu'elle chaîne de caractère de n'importe quelle longueur (y compris aucun caractère). Il n'est indispensable que si deux chaînes l'entourent ou dans des cas particuliers que nous verrons plus bas. Ces filtres-là contiennent le joker, mais sans lui ils fonctionneraient tout aussi bien :

cibleclick.*
ads.*
pubs.*

Ecrire ads.* ou simplement ads. est strictement équivalent. Le joker est en revanche utile pour construire ce genre de filtres :

images*/pubs

Ce filtre est intéressant car il va bloquer tous les URL contenant le mot "images" suivi de n'importe quel chaîne de caractère ou aucune (joker *) suivi enfin de la chaîne "/pubs". Ce qui permettra ainsi de bloquer tout ça (entre autres) :

RegExp.

Ce qui rend Adblock intéressant, c'est qu'il permet l'usage des puissantes expressions rationnelles (RegExp) que nous détaillerons dans une autre section. Un filtre utilisant des expressions rationnelles doit commencer et finir par un slash (/). Exemple : /http://ads\./ est une RegExp.

Aussi, gare aux confusions à propos du joker * !
Si écrire *humanclick.* ou humanclick. est parfaitement équivalent, en revanche /adv/ et */adv/* sont très différents, car le premier filtre indique qu'il s'agit d'une expression rationnelle et il est équivaut à écrire simplement adv (ce qui est très restrictif). Pour viser uniquement les répertoires /adv/, on devra écrire */adv/ (un seul astérisque suffit, qu'il soit en début ou en fin de chaîne), ce qui est identique à //adv//...

Dans sa version actuelle (0.5 d2 nightly 39), Adblock ne possède pas de liste d'exclusion, au cas où des éléments d'un site seraient improprement bloqués. Problème que l'on peut résoudre, comme on le verra, grâce aux RegExp. On peut aussi se reporter sur Adblock Plus.

Les options d'Adblock

Ici sont présentées les options communes à Adblock et Adblock Plus 0.5, et accessibles dans le menu "Options d'Adblock" de la fenêtre des préférences (qui elle est accessible par la combinaison de touche CRTL+SHIFT+P ou via le menu Outils -> Adblock -> Préférences).

Etiqueter les objets (Obj-Tabs).

Cette option ajoute simplement un petit bouton cliquable sur les objets multimédias (fonds sonores, applets Java, animations Flash) afin de permettre de les bloquer facilement. Il arrive parfois que ce bouton soit gênant car il empêche de cliquer sur la partie de la page où il se trouve, empêchant par exemple d'accéder à un menu.

Masquer les éléments bloqués (Collapse Blocked Elements).

Cette option masque l'espace occupé par un élément bloqué. Sans cette option activée et pour une image bloquée par Adblock, il subsistera toujours l'espace occupé par l'image en fonction des dimensions spécifiées via les attributs width et height, donc un "trou" dans la page.

une page de tests pour mieux comprendre

Vérifier les liens parents (Check Parent Links).

Cette option permet de bloquer les images non seulement en fonction de l'adresse de leur emplacement, mais aussi en fonction de l'adresse vers laquelle pointe l'éventuel lien présent sur celle-ci. Prenons cet exemple HTML :

<a href="http://ad.doubleclick.fr/ads..."><img src="img01.jpg" /></a>

Admettons aussi que la liste d'Adblock ne contienne que le mot-clé "doubleclick". Sans l'option "Vérifier les liens parents" activée, l'image ne sera pas bloquée. Avec cette option activée, l'image sera bloquée car elle se trouve dans un lien qui pointe vers une adresse contenant le mot "doubleclick".

Cette option est donc puissante, mais pose souvent problème, c'est pourquoi je recommande de ne pas l'activée (du moins pas avec ma liste).

Bloquer les sites (Site Blocking).

Cette option empêche le navigateur de se connecter à un site filtré par la liste Adblock. Si cette option est désactivée, on pourra accéder au site, mais tous les éléments filtrables seront bloqués, seuls le texte et les liens du site seront visible.

Conserver l'ordre alphabétique (Keep List Sorted).

Cette option va trier dans l'ordre alphabétique la liste des filtres.

Adblock Plus

Deux extensions dérivées d'Adblock et lui ajoutant des fonctionnalités ont été développées : Adblock Plus 0.5, dont le développement est arrêté, et Adblock Plus 0.7, à l'ergonomie un peu différente. Bien que les numéros de versions se suivent, il ne s'agit pas de la même extension (quelques explications). Je décris ici les fonctions d'Adblock Plus 0.5, dont certaines sont également présentes dans la version 0.7. Pour en savoir plus sur Adblock Plus 0.7, reportez-vous à la FAQ.

Liste blanche.

La liste blanche, c'est l'ensemble des filtres précédés d'un double arobase : @@. Il y a deux façons d'exclure un site du filtrage : l'ajouter directement avec les filtres de la liste noire (soit en éditant une liste à importer, soit en ajoutant la ligne dans le champ "Nouveau filtre" de la fenêtre des préférences accessible via la combinaison de touche CRTL+SHIFT+P); ou bien l'ajouter dans la liste "Blocage de sites/liste blanche", accessible depuis le menu des options.
Les filtres de la liste blanche apparaissent en bleu, ce qui permet de les différencier à coup sûr des filtres de la liste noire.

Par exemple, vu que ma liste bloque les éléments du site www.ad.nl, il suffit d'exclure ce site de cette manière  :

[Adblock]
@@ad.nl
///([^/]+\.)?ad(ima?ge?|manager|se?rv.*|stream|v|vert.*|x)?s?-?\d*\.(?!.+\.edu|jp/|$)/
[...]

Ainsi, non seulement aucun élément du site www.ad.nl ne sera bloqué, mais en plus les pubs venant de serveurs différents (doubleclick par exemple) ne le seront pas non plus. Pour avoir accès à tous les éléments du site, mais ne pas voir les pubs, il faudrait écrire ceci (faites défiler, c'est tout au bout que ça se passe !) :

[Adblock]
///([^/]+\.)?ad(ima?ge?|manager|se?rv.*|stream|v|vert.*|x)?s?-?\d*\.(?!.+\.edu|jp/|nl|$)/
[...]

C'est à dire ajouter "nl" dans la partie d'exclusion de la RegExp en cause.

L'inconvénient de ce système de liste blanche est donc que l'on ne peut pas exclure un site uniquement pour un filtre de la liste noire (comme on peut le faire avec la dernière version de la config de JD5000 pour Proxomitron, pour ceux qui connaissent). C'est pour cette raison que j'ai inclus des règles d'exclusion sur les filtres les plus sensibles de ma liste.

Notez qu'au lieu d'un site Web, on pourrait mettre une RegExp à la place.

Blocage de sites.

Adblock Plus possède une liste de sites à bloquer, c'est à dire qui rend ces sites totalement inaccessibles. Pour cela, il faut utiliser la liste "Blocage de sites/liste blanche", accessible depuis le menu des options. Entrez alors simplement le nom de domaine du site à bloquer, ou bien cliquez sur le bouton "Ajouter le site courant" pour ajouter un site à la liste. Désormais, lorsque vous tenterez d'accéder à ce site, un message vous indiquera quel filtre a bloqué ce site.

Synchronisation.

Dans les options d'Adblock Plus, il y a désormais une partie "Synchroniser les paramètres", qui sert à mettre à jour la liste. En cochant l'option "Synchroniser automatiquement", la liste sera mise à jour à chaque démarrage du navigateur (cependant, vous ne pourrez plus ajouter de filtres par l'interface d'Adblock Plus). Mais pour cela, il faut déjà définir le chemin de la liste à synchroniser avec l'option "Chemin de synchronisation...", qui autorise la synchronisation d'une liste Web (adresse commençant par "http://...") ou d'une liste locale (celle-ci doit être du genre "file:///C:/Documents..." sous Windows). Sans quoi c'est une liste prédéfinie qui sera utilisée. Enfin, vous pouvez mettre à jour la liste manuellement en cliquant sur l'option "Synchroniser maintenant...".

Sites à soutenir.

La fonctionnalité "Sites à soutenir" permet, pour les sites figurant dans cette liste, de télécharger les éléments normalement bloqués par la liste noire, mais de ne pas les afficher. Cela permet ainsi d'effectuer un hit sur le serveur de pub, et donc de soutenir des sites dépendant de la publicité. Pour ajouter un site, trois possibilités :

Blocage des éléments DIV.

Adblock Plus permet de bloquer les éléments DIV des pages Web en fonction de l'attribut d'identifiant (après avoir activé l'option "Vérifier les éléments DIV"). On peut s'en rendre compte en allant sur un site et en affichant les éléments filtrables (clic sur le lien Adblock de la barre d'état). Les filtres visant les éléments DIV doivent contenir la chaîne #DIV, comme par exemple :

#DIV(overture)
www.unsiteouaib.fr/#DIV(pub-droite)
/#DIV.*pub-/

Le problème est que si l'on laisse cette option activée, les filtres s'appliqueront systématiquement aux éléments DIV. En outre, Adblock Plus 0.5 est limité aux seuls éléments DIV, et ne s'applique donc pas pour les IFRAME, TABLE et autres éléments constituant une page Web et qui peuvent contenir tout autant que DIV des mots-clés en rapport avec la pub.

L'art du filtrage

Le choix de mots-clés est souvent plus délicat qu'on ne l'imagine. Des mots-clés mal choisis seront trop restrictifs (faux positifs). De l'expérience que j'ai, en voici quelques-uns qu'il vaut mieux éviter d'utiliser seuls :

*bandeaux*
*banner*
*banners*
*banniere*
*bannieres*
*popup*
*pub*
*pubs*
*publicite*

Ces termes seront trop restrictif même en ajoutant des / (slash) pour limiter la recherche aux répertoires. Ecrire */pub/* au lieu de *pub* n'y changera rien. Ces termes sont trop restrictif car ils peuvent signifier autre chose qu'une publicité. Le mot "banniere" peut très bien désigner la bannière d'un site, et non une bannière publicitaire. Quant à "pub", il peut être l'abréviation de "publicité", mais aussi de "publication" ou encore "public".

Dans tous les cas, la liste peut vite devenir très longue. Pour des raisons d'efficacité, de place, et de fiabilité, les expressions rationnelles sont incontournables. La création d'une bonne liste est soumise à trois contraintes à la fois :

Toute la difficulté consiste donc à choisir les bons mots-clés et à créer les bons filtres par rapport à ces trois contraintes. Et pour cela, rien ne vaut les expressions rationnelles...

Les expressions rationnelles

Les expressions rationnelles ou expressions régulières (traductions au choix de l'anglais "regular expressions") sont utilisées dans divers langages de programmation, comme Perl, JavaScript ou PHP par exemple. Elles permettent d'avoir une maîtrise totale et précise sur des chaînes de caractères. Elles constituent donc un moyen puissant de filtrage de la publicité. En les maîtrisant, on économise en place et on gagne en efficacité.

Dans Adblock, un filtre utilisant des expressions rationnelles doit commencer et finir par un slash (/).

Voici un tableau résumant 29 règles valables dans Adblock. Chaque ligne de ce tableau est composée d'un caractère spécial (ou plusieurs) et d'une règle d'utilisation lui correspondant. Il importe de bien comprendre exactement la signification précise de chacune de ces règles. Chaque règle est accompagnée d'au moins un exemple simple pour assurer une meilleur compréhension.

Vous pouvez vous entraîner avec Regex Coach, un excellent logiciel qui permet de progresser rapidement dans sa maîtrise des expressions rationnelles. Juste un conseil : cochez la case "i" pour qu'il soit insensible à la casse.

composant description exemple(s)
Tout caractère, sauf les caractères spéciaux [\^$.|?*+() Trouve le même caractère. /ads/ va trouver /ads/ dans http://domaine.com/ads/pub.gif
\ (antislash) suivi d'un caractère spécial. Trouve un caractère spécial. \? va trouver ? dans http://domaine.com/track?url=referer
[] (crochets) Trouve un des caractères compris entre ces crochets, sauf les caractères ^]\- [abc] va trouver un caractère qui va être soit a, soit b, soit c.
[\x] (où x représente un des caractères ^]\-) Trouve un des caractères réservés pour crochets [\]\^] va trouver ] ou ^
[x-y] Trouve un caractère compris entre x et y.
Une expression comme [g-b] n'est pas autorisée.
[u-z] va trouver une lettre comprise entre u et z.
[0-9a-z] va trouver n'importe quel chiffre ou lettre.
[^x] Trouve n'importe quel caractère sauf x. [^0] va trouver n'importe quel caractère sauf 0.
[^u-z] va trouver tout caractère excepté une lettre comprise entre u et z.
. (point) Trouve n'importe quel caractère. dao.da va trouver daooda ou daouda
\d Trouve n'importe quel chiffre. Equivalent de [0-9] ad\d va trouver ad8 mais pas ads
\D Trouve n'importe quel caractère qui n'est pas un chiffre. Equivalent de [^0-9] ad\D va trouver ads, adv ou ad-, mais pas ad8
\w Trouve une lettre, un chiffre ou le caractère _, c'est à dire tout caractère valide dans un mot ("word" en anglais, d'où le "w"). Equivalent de [0-9a-z_] ad\w va trouve ads, adv, ad8, ad5 ou ad_, mais pas ad- ou ad?
\W Trouve tout caractère qui n'est pas une lettre, un chiffre ou _, c'est à dire tout caractère séparateur de mots (espace, trait d'union, slash, point, etc.). Equivalent de [^0-9a-z_] ad\W va trouver ad., ad-, ad+, mais pas ads, ad5 ou ad_
| (barre verticale) Trouve l'une ou l'autre des expressions situées de part et d'autre de | ads|pubs va trouver ads ou pubs
() (parenthèses) Permet de regrouper des expressions. C'est à dire que ce qui se trouve entre parenthèse sera traité de manière distincte du reste. Sert également à mémoriser l'occurrence (voir plus loin avec \n) ad(s|v|\d) va trouver ads, adv ou ad8, mais pas adx ou ad_
? (point d'interrogation) Dans la recherche, répète le caractère ou l'expression qui précède zéro ou une fois. ads? va trouver ad ou ads
+ (plus) Dans la recherche, répète le caractère ou l'expression qui précède une ou plusieurs fois (aussi loin que possible). ad\d+ va trouver ad8, ad05 ou ad5462679
:.+\. va trouver ://pubs.serveurdepub. dans http://pubs.serveurdepub.fr
* (astérisque) Dans la recherche, répète le caractère ou l'expression qui précède zéro ou plusieurs fois (aussi loin que possible). ads* va trouver ad, ads, adss ou adsssss
:.*\. va trouver ://pubs.serveurdepub. dans http://pubs.serveurdepub.fr
+? Dans la recherche, répète le caractère ou l'expression qui précède une ou plusieurs fois, mais s'arrête à la première occurrence du caractère ou de l'expression qui suit. :.+?\. va trouver ://pubs. dans http://pubs.serveurdepub.fr
*? Dans la recherche, répète le caractère ou l'expression qui précède zéro ou plusieurs fois, mais s'arrête à la première occurrence du caractère ou de l'expression qui suit. :.*?\. va trouver ://pubs. dans http://pubs.serveurdepub.fr
{n} (accolades) (où n est un nombre supérieur ou égal à 1) Dans la recherche, répète n fois le caractère ou l'expression qui précède. ads\d{2}\. va trouver ads05. ou ads86., mais pas ads7. ou ads562.
{n,m} (où n est un nombre supérieur ou égal à 1 et m un nombre supérieur à n) Dans la recherche, répète entre n et m fois le caractère ou l'expression qui précède. ads\d{2,3}\. va trouver ads47. ou ads708., mais pas ads7. ou ads7512.
{n,} (où n est un nombre supérieur ou égal à 1) Dans, la recherche, répète au minimum n fois le caractère ou l'expression qui précède. ads\d{2,}\. va trouver ads50. ou ads7894565. mais pas ads5.
\n (où n est un nombre compris entre 1 et 9) Variable dont le contenu est une expression entre parenthèse définie précédemment, et dont le nombre correspond à la première, seconde, troisième, etc., parenthèse. ad(s)pub\1 va trouver adspubs
ads-(\d)(\w)\1\2 va trouver ads-5z5z ou ads-8e8e, mais pas ads-8e8f ou ads-8e6e
(?:x) Trouve x mais ne mémorise pas ce qui a été trouvé comme contenu pour une variable. (?:b)a(n)\1er va trouver banner
\b Trouve la position entre un caractère valide dans un mot (\w) et un caractère séparateur (\W) ou un début ou fin de ligne. .\b va trouver s dans ads
.\b va trouver b dans pub-ad
\b.\b va trouver - dans pub-ad
\B Trouve la position entre deux caractères valides dans un mot (c'est à dire la position entre \w\w). .\B va trouver p dans pub-ad
.\B va trouver a dans p.u.b-ad
\B.\B va trouver u dans pub-ad
x(?=y) Trouve x uniquement si x est suivi de y. pub(?=licite) va trouver pub dans publicite
x(?!y) Trouve x uniquement si x n'est pas suivi de y. pub(?!lic(\b|a)) va trouver pub dans publicite et pubs, mais pas dans public et publication
^ (accent circonflexe) Positionne en début de ligne (avant le premier caractère). ^. va trouver a dans ads
$ (dollar) Positionne en fin de ligne (après le dernier caractère). .$ va trouver s dans ads
^.{1,50}$ va trouver n'importe quelle chaîne d'une longueur maximale de 50 caractères.

A quoi il faut ajouter deux remarques importantes :

- Adblock ne fait pas de distinction entre les majuscules et les minuscules. ban va trouver indistinctement ban, BAN ou BaN.
- Le caractère * (astérisque) en expression rationnelle n'a pas du tout la même signification que le joker *. L'équivalent du joker * en expression rationnelle est .*. Les deux filtres suivant signifieront donc la même chose :

*/ads/*
/.*/ads/.*/

En revanche, ces deux là sont très diffèrents :

http://ads.*
/http://ads.*/

Comment filtrer la pub avec les expressions rationnelles ?

Dans cette section, je vais décrire les raisonnements qui mon servi de base pour élaborer ma liste, ce qui pourra peut être vous aider à mieux comprendre la façon de faire des filtres RegExp, qui demandent forcément plus de réflexions que des filtres simples.

Un des tout premiers filtres à faire, et qui me paraît absolument indispensable, concerne les préfixes de domaines. En effet, le nombre de serveurs ayant "ad" ou "ads" comme préfixe est considérable. Voici quelques exemples:

Mais pourquoi utiliser des expressions rationnelles, me demanderez-vous, puisqu'il suffit d'utiliser ce genre de filtres:

http://ad.*
http://ads.*

Eh bien parce qu'énormément de préfixes commençant par ad ou ads sont suivis d'un nombre:

Dans les listes hosts antipub les plus importantes, le nombre de serveurs commençant par ces préfixes est de plusieurs milliers ! C'est pourquoi un filtre spécifique s'impose:

/http://ads?\d*\./

Cette simple ligne va ainsi permettre de bloquer des milliers de serveurs. En tenant compte d'autres préfixes courant qui commencent par "ad" (adimg, adv, adserver, advert, etc.), on obtient un filtre très puissant:

/http://ad(x|v|ima?ge?|se?rv.*|vert.*)?s?-?\d*\./

Tout aussi indispensable est le filtre équivalent pour les préfixes "pub", "pubs" et "pubsrv", ce qui là aussi permettra de bloquer un grand nombre de serveurs :

/http://pub(s(rv)?)?\d*\./

Maintenant, imaginons que vous visitiez régulièrement un site "normal" dont le nom de domaine possède un préfixe listé dans l'un des filtres ci-dessus. Peut-on tout de même garder ces filtres puissants et ne pas filtrer ce site ? Oui. Simplement en rajoutant (?!serveur.à.ne.pas.filtrer) à la fin de l'un de ces filtres. Par exemple, si je ne veux pas filtrer ads.harvard.edu (ads étant ici l'acronyme de Astrophysics Data System), il me suffira de compléter mon filtre de cette manière :

/http://ad(x|v|ima?ge?|se?rv.*|vert.*)?s?-?\d*\.(?!harvard.edu)/

Mais les sites qui ne doivent pas être filtrés par les filtres de préfixes étant très rares, on aura recours à cette méthode qu'exceptionnellement.


Voyons voir maintenant comment bloquer des serveurs dans les « règles de l'art »... Tout d'abord, si l'on souhaite un filtre qui limite la recherche de mots-clés au domaine et non dans l'URL entier, mais tout en tenant compte d'éventuels préfixes, alors ce filtre devra avoir la forme suivante:

/http://([^/]+\.)?domaine.a.bloquer[./:]/

Ce qui signifie que ce filtre recherchera tout ce qui suit http:// et qu'il s'arrêtera soit immédiatement après (http://domaine.a.bloquer.com), soit après avoir rencontré un point (http://pubs.domaine.a.bloquer.com). Le [^/]+ signifie qu'il n'ira pas plus loin que le premier slash, pour éviter ainsi qu'il ne cherche le mot-clé dans le chemin. Ce qui évitera les problèmes pour des noms de serveurs à bloquer non spécifiques, tels que "adition", "colonize", "observer", etc.

A partir de là, pour gagner de la place, il est possible de faire des filtres contenant plusieurs noms de domaines:

/http://([^/]+\.)?(bluestreak|extreme-dm|realmedia|tradedoubler)[./:]/

Ces filtres peuvent même être raccourci lorsque plusieurs domaines finissent par un même terme (comme "click" ou "pub"). En voici deux exemples:

/http://([^/]+\.)?(ab(le)?|cible|double|fast|smart|value)click\./
/http://([^/]+\.)?(clic.|exit|link|traffic)-?e?xchange\./

Dans la même logique, on peut imaginer un filtre très puissant qui bloquera tous les domaines finissant par un mot-clé typique:

/http://[^/]+(adserver|advert|affiliation|banner|regie|sponsor)s?\./

Ainsi, tous les domaines finissant par "adserver", "advert", "affiliation", "banner", "click", "regie" ou "sponsor" seront bloqués. Pour le mot-clé "affiliation", cela inclus ces serveurs:

Le filtre suivant bloquera quant à lui tous les domaines commençant par un mot-clé:

/http://([^/]+\.)?(advert|banner|nedstat)\w+\./

Une autre idée est d'éliminer tous les serveurs contenant un mot-clé :

/http://([^/]+)?casino(\w+)?\./

Ce filtre bloquera ainsi tous les noms de domaines contenant le mot "casino".
Evidemment, ces trois derniers filtres peuvent être très restrictifs si l'on ne fait pas les bons choix de mots-clés. A manier avec précaution donc...


Cependant, beaucoup de pubs ne se situent pas sur des serveurs de pubs, mais directement sur le site que l'on visite. Pour celles-ci, il faut alors faire des filtres visant le chemin de l'URL. Une des manières les plus courantes pour un webmaster est de placer ses images de pubs dans un répertoire au nom parlant, tel que /images/pubs/. Pour tenir compte de plusieurs possibilités, voici un filtre efficace qui visera ce genre de répertoires:

/[\W_]im(ages|g)[^.]*/p(ub(licite)?|artenaire)s?[\W_]/

Ce filtre permettra ainsi de bloquer ces répertoires ou images (entre autres):

Ensuite, nous pouvons faire un filtre utilisant les mots-clés "ads" et "adx". Tout comme les préfixes de domaines, on préférera un filtre qui tienne compte des nombres qui peuvent suivre ces mots-clés. On obtient alors un filtre très puissant:

/http://.+/(.*[\W_])?ad[sx](\d{1,2})?[\W_]/

Ici, ce qui précède ad est ce qui est nécessaire d'indiquer si l'on souhaite exclure de la recherche la partie domaine de l'URL. Ce filtre bloquera ainsi les répertoires et fichiers suivants (entre autres):

On remarquera aussi que ce filtre permet de bloquer toutes les pubs du serveur googlesyndication (entre autres), puisque le fichier de son URL (http://*.googlesyndication.com/pagead/show_ads.js) est toujours le même et est constitué du mot-clé ads. Ainsi, quant un filtre permet déjà de bloquer les URLs d'une régie, il est inutile de rajouter le domaine de cette régie dans la liste des filtres. Ceci constitue un nécessaire processus d'optimisation d'une bonne liste Adblock.

En revanche, comme il faut faire attention aux mots-clés "adv" (qui peut être l'abréviation de "advertising", mais aussi de "advantage", "advance", "adventure", etc.) et surtout "ad", nous allons faire un petit filtre qui limitera la recherche aux répertoires:

//adv?//

Enfin, un filtre très utile est celui visant les dimensions standards des images de pubs, dimensions que l'on retrouve souvent dans les noms de fichiers ou de répertoires. Celui-ci tiendra compte du format le plus courant (468x60):

/\D468[\-_x]?0?[69]0(?!\d)/

Ce filtre bloquera ainsi les URL de ce genre:

Notez ici l'utilisation de (?!\d) au lieu de \D, ce qui signifie qu'il n'est pas obligatoire qu'un caractère se trouve après le 0 (il faut simplement que si il y a un caractère, que celui-ci ne soit pas un chiffre), contrairement au filtre suivant:

/\D468[\-_x]?0?[69]0\D/

Ce filtre n'aurait ainsi pas bloqué le troisième URL (http://www.un.serveur.fr/banner.php?type=468x60) des exemples précédents.

Précisions sur la liste

Cette liste est très puissante, et éliminera l'immense majorité des pubs. Elle a été conçue avant tout pour le Web francophone, mais convient également pour le Web anglophone. Je l'ai aménagée de façon à ce qu'elle soit la plus lisible et la plus souple que possible. Lisibilité tout d'abord en séparant les filtres par des commentaires selon la partie d'URL visée et le type d'élément à bloquer (pubs ou stats). Souplesse ensuite car j'ai introduit dans tous les filtres qui ne visent pas un domaine en particulier (et qu'on pourrait appeler les filtres "universels") une règle d'exclusion. C'est la règle x(?!y), qui se trouve dans les filtres sous la forme .(?!$). Le principe est très simple : si un filtre bloque un élément que l'on ne souhaitait pas bloquer sur un site, il suffira d'ajouter le nom de domaine de ce site à la place du dollar.

Par exemple, si le filtre suivant s'avère trop restrictif sur un site :

/^(.(?!$))+/adv?//

il suffira de remplacer le dollar par le nom du site à exclure :

/^(.(?!site.a.exclure))+/adv?//

Il est important de savoir qu'il ne faut mettre aucun préfixe au domaine, y compris les "www". Si par exemple vous voulez exclure le serveur "www.unserveur.fr", il faudra ajouter simplement "unserveur.fr".

userContent.css

En matière de blocage de la publicité, il n'y a aucune solution idéale. Car chaque solution possède ses avantages et ses inconvénients. Il ne faut donc pas hésiter à recourir à plusieurs outils de filtrage à la fois. Et le meilleur complément d'Adblock s'appelle userContent.css. Là où Adblock ne fait que du filtrage d'URL, userContent.css permet de faire du filtrage en fonction d'informations contenues dans le code HTML.

userContent.css est un fichier qui n'a pas été créé lors de l'installation de Mozilla. Vous devez le créer dans le sous-répertoire "chrome" qui se situe dans le répertoire de votre profil. Ce fichier peut contenir des règles CSS qui permettent de modifier l'apparence des pages. On peut donc l'utiliser pour y placer des règles qui vont désactiver l'affichage des pubs selon leurs dimensions (entre autres) spécifiées dans le code HTML. Pourquoi les dimensions ? Parce que les dimensions des pubs ont été standardisées par un organisme international, l'IAB. La plupart des pubs respectent ces standards, il suffit par conséquent de les filtrer en fonction de ces dimensions.

Le principe est simple : en HTML, pour afficher une image, par exemple, on doit écrire quelque chose comme ça (au minimum) :

<img src="img/banner.jpg">

Bien souvent (mais pas tout le temps), les dimensions des images sont spécifiées de cette manière :

<img src="img/banner.jpg" width="468" height="60">

Dans notre fichier userContent.css, nous allons maintenant écrire quelques lignes pour désactiver l'affichage d'éléments en fonction des dimensions ainsi spécifiées. Pour ne pas afficher l'image ci-dessus, on écrira ceci :

img[width="468"][height="60"] {
	display: none !important;
}

Et en étendant le blocage aux dimensions standards les plus courantes ainsi qu'aux autres éléments HTML, on obtient ce code, dont il suffit de faire un copier/coller dans le fichier userContent.css :

/*
 *	Bloquer n'importe quel élément en fonction des
 *	dimensions publicitaires standards de l'IAB.
 *	Le "250x250" n'y figure pas car il est trop restrictif...
*/
*[width="728"][height="90"],
*[width="468"][height="60"],
*[width="160"][height="600"],
*[width="160"][height="320"],
*[width="120"][height="600"],
*[width="120"][height="240"] { 
        display: none !important;
}

Cette méthode est assez efficace et va bloquer beaucoup de pubs. On peut également l'utiliser pour bloquer les pubs en fonction de leur URL (voir cette page par exemple), comme avec Adblock. Sauf que c'est beaucoup moins puissant puisqu'on ne peut pas utiliser d'expressions rationnelles... Aussi, l'inconvénient de cette méthode est que les éléments bloqués sont juste non affichés, mais quand même téléchargés, contrairement à Adblock. Ce qui est de toute façon bien mieux que de voir clignoter une bannière...

userContent.css s'avère par ailleurs incontournable dès que l'on souhaite bloquer des liens publicitaires incrustés dans le code HTML de la page visitée. Voici un ensemble de filtres qui bloquera les liens publicitaires sur le moteur de recherche Google :

/*
 *	Désactiver l'affichage des liens publicitaires sur Google.
 *	Fonctionne pour Google Search et Google Groups.
 *	MAJ : 1er décembre 2005.
 *	Remarque : nécessite Firefox 1.5 ou supérieur.
*/
@-moz-document url-prefix(http://www.google.), url-prefix(http://groups.google.) {
	table[width="25%"],
	table[width="20%"],
	table[height="40"],
	table[width="100%"][bgcolor="#ECF8FF"],
	table[width="100%"][bgcolor="#E0FFE3"],
	table[width="100%"][bgcolor="#FFF5F6"],
	div[id^="tpa"][style*="rgb(229, 236, 249)"],
	iframe[name="google_ads_frame"],
	noscript + body[onresize=""][onload="sf()"]
	   table[style^="float:"][style$="right;"][align="right"][width="25%"],
	noscript + body[onresize=""][onload=""]
	   table#rn table.adb,
	noscript + body[onresize=""][onload=""]
	   table[style^="float:"][style$="right;"][align="right"][width="25%"] {
		display: none !important;
	}
}

Quant à ce code, il permettra de ne plus voir le cadre de pub du service de redirection Ulimit :

/*
 *	Virer le cadre de pub Ulimit.
 *	MAJ : 13 août 2005.
*/
iframe[src^="http://tx.ulimit.com/ads/sky.php"] + iframe,
body[onunload="l();"][onload="rif()"] iframe#oh + iframe#ah {
	width: 100% !important;
	height: 100% !important;
}

Et un autre coup de balais, pour Yahoo cette fois :

/*
 *	Cacher les liens publicitaires sur Yahoo! Search.
 *	Fonctionne pour Yahoo.com et Yahoo.fr.
 *	MAJ : 11 juin 2005.
*/
div#yschres div#yschsec,
div#yschpri div.yschspns {
	display: none !important;
}

Je vous signale enfin que j'utilise depuis maintenant des mois un fichier antipub.css que j'affine au fil du temps, et qui peut servir comme complément d'un blocage par Adblock. Il suffit d'enregistrer le fichier antipub.css dans le répertoire chrome, et de mettre l'instruction suivante dans votre fichier userContent.css :

@import url("antipub.css");

Liens

Site officiel :
http://adblock.mozdev.org/

Traduction française :
http://extensions.geckozone.org/Adblock

Adblock Plus 0.5 (version originale internationale incluant le français) :
http://bene.sitesled.com/adblock.htm

Adblock Plus 0.7 :
http://adblockplus.org/fr/

Page Geckozone d'Adblock Plus :
http://extensions.geckozone.org/AdblockPlus

Une description détaillée d'Adblock Plus en allemand et anglais :
http://chewey.de/mozilla/adblock-doku.html

Regex Coach, un petit logiciel gratuit très utile pour apprendre les expressions rationnelles
(disponible pour Linux et Windows) :
http://www.weitz.de/regex-coach/

Un autre complément d'Adblock : user.js, qui permet le blocage des cadres de pub Lycos !
http://mjules.free.fr/dotclear/index.php?2004/10/28/19-blocage-de-pub-bis-repetita

Une extension qui s'occupe de bloquer les animations Flash (on peut ensuite les lire au cas par cas).
http://flashblock.mozdev.org/

D'autres listes Adblock...
http://www.google.fr/search?q=filetype:txt+[Adblock]


Sachez que "Adblock" ne s'écrit pas comme ça :
addblock, adbloc, addbloc, adblok, adbock, adbolck, abdlock, advblock, ad block, ad-block, add-block, adlbock, adbllock, asblock, azdblock.
;)


Dernière modification: samedi 05 janvier 2013 à 17:41