Web : éliminer définitivement les publicités

Exemple de fichier hosts

Exemple de fichier hosts.

Nous expliquions récemment que les publicités représentent 39 % du poids des pages web. Pour les bloquer, la plupart des internautes utilisent une extension telles que AdBlockPlus.

Ces greffons fonctionnent bien et sont simples à utiliser. Quelques clics suffisent à les déployer. Revers de la médaille, ces extensions ne réduisent pas la bande passante consommée et mobilisent beaucoup de ressources (mémoire vive, puissance processeur, etc.). AdBlock Plus double par exemple la mémoire consommée pour le navigateur.

Nous vous proposons donc de (re)découvrir une méthode alternative qui est à la fois très efficace et ne consomme aucune ressource sur la machine. Contrairement aux extensions, cette méthode évite de télécharger le contenu indésirable et n’est pas basée sur l’analyse du contenu mais sur le blocage des domaines servant ces cookies traçants et autres publicités.

Une technique vieille de 22 ans !
La technique que nous allons utilisée repose sur le fichier hosts, un mécanisme qui permettait de se passer de serveurs de nom de domaine (DNS) au début de l’internet. Bien que mise de côté en 1983, cette approche reste très utile pour filtrer le trafic internet car elle surclasse le système DNS (Domain Name Server).

L’idée est toute simple. Pour accéder à www.greenit.fr, votre ordinateur doit disposer d’une adresse à 4 chiffres (IPv4) ou 6 chiffres (IPv6) du type 193.234.125.237. C’est cette adresse qui est utilisée pour connecter votre ordinateur au serveur web qui vous fournit le contenu que vous affichez dans votre navigateur. Les serveurs DNS et le fichiers hosts font correspondre un nom de domaine à une adresse IP.

Comme les cookies, publicités et autres contenus indésirables sont nécessairement fournis depuis un domaine du type www.publicite.com, nous allons leurrer votre navigateur. A chaque fois qu’il souhaitera télécharger un contenu depuis le domaine www.publicite.com nous l’orienterons vers l’adresse IP 127.0.0.1 qui correspond à votre machine. Le navigateur ne trouvant rien à afficher, il ne téléchargera et n’affichera pas le contenu indésirable. Et le tour est joué !

Des listes mises à jour régulièrement
La technique est simple puisqu’il suffit d’ajouter les adresses indésirables dans le fichier etc/hosts du système d’exploitation (c:\windows\system32\drivers\etc\ sous Windows). Et elle est universelle : vous pouvez la mettre en œuvre sous Linux, MacOS X, Windows, Android, iOS, etc. En revanche, il est plus compliqué de constituer une liste de nom de domaine indésirable from scratch et il vous faudra la mettre à jour régulièrement.

Plusieurs sites proposent des fichiers hosts à jour :

Il existe certainement d’autres listes et outils. Partagez en commentaire ! Et n’oubliez pas de créer une copie de votre fichier hosts avant d’effectuer toute modification. Vous pourrez ainsi revenir à l’état initial très facilement.


Commentaires

C’est ce que je fais, mis à part les listes de mise à jour.

Par ailleurs, ayant un serveur web qui tourne sur mon poste, je génère et mets en cache à la volée toutes les urls qui sont demandées, ce qui fait qu’il n’y a pas d’erreur 404 ni de latence en visitant une page.

ps: je sais si ce soir je peux me libérer pour le 29.
A bientôt.

Buu-Lâm Lê (non vérifié) le 15/09/2015

Bien pour ce petit rappel.
Il aurait été également intéressant de mentionner que la mise en place d’un proxy gérant ces listes simplifie le fait de devoir mettre à jour les N téléphones/tablettes/PC de la maison… :)

lecameleon99 (non vérifié) le 15/09/2015

Linux
———-
L’adresse du fichier est : /etc/hosts
1. Taper : $ sudo vi /etc/hosts
2. Editer le fichier avec le mode insertion (touche “i”)
3. Ajouter les adresses à bloquer : 127.0.0.1 domaine_a_bloquer.com (prendre garde à ne pas effacer les premières lignes du fichier du type 127.0.0.1 localhost)
4. Appuyer sur ECHAP
5. Enregistrer en tapant la séquence “:” puis “wq” puis ENTER

Android
——————
Vous pouvez utiliser Hosts Editor sur un terminal rooté. Voir https://play.google.com/store/apps/details?id=com.nilhcem.hostseditor&hl…

Firefox OS
———————
La séquence est décrite ici https://developer.mozilla.org/fr/docs/Modifier_le_fichier_hosts

Mac OS X
————————-
L’adresse du fichier est : /etc/hosts
1. Lancer le terminal (Applications > Utilitaires)
2. Taper : $ sudo nano /private/etc/hosts
3. Entrer le mot de passe du compte administrateur.
4. Ajouter les adresses à bloquer : 127.0.0.1 domaine_a_bloquer.com en prenant garde à ne pas effacer les premières lignes du fichier du type 127.0.0.1 localhost
5. Enregistrer : ctrl+o
6. Quitter : ctrl+x

Windows (NT, 2000, XP, Vista, 7, 8)
——————————————————
L’adresse du fichier est : c:\windows\systeme32\drivers\etc\hosts
1. Via l’explorateur de fichier aller dans le répertoire c:\windows\systeme32\drivers\etc\
2. Clic droit sur le fichier hosts pour l’ouvrir avec le Bloc Notes
3. Ajouter les adresses à bloquer : 127.0.0.1 domaine_a_bloquer.com (une par ligne)
4. Enregistrer et quitter le Bloc Notes

admin le 15/09/2015

@lecameleon99 : pouvez-vous nous donner des précisions ? ou un lien vers un how to ?

admin le 15/09/2015

Merci de rappeler la puissance des techniques de la vieille école… Quelque chose me dit cependant que si AdBlockPlus a choisi la stratégie qu’ils ont choisie, c’est qu’il doit y avoir une bonne raison, non ? :-)

Par ailleurs, pourquoi ne pas aller encore plus loin et intégrer cette “liste noire” dans le navigateur lui-même via une extension ? Ainsi, toute requête vers un des hôtes mentionnés dans la liste serait ignorée.

David Bourguignon (non vérifié) le 15/09/2015

Une liste que j’utilise depuis quasiment 10ans:
http://winhelp2002.mvps.org/hosts.htm

Attention, pour les linuxiens sudoers, a commenter les définitions du localhost/hostname de ce type de liste et a conserver celles du fichier original.

Sinon, sudo marche plus… Sur une Ubuntu avec le compte root désactivé par défaut c’est reboot nécessaire sur un live-CD pour y monter ses disques avec les droits root et corriger le tir!

On a vite fait de se faire avoir…

lym (non vérifié) le 15/09/2015

@David : AdBlockPlus et les autres extensions de ce type sont pratiques pour des néophytes qui ne souhaitent pas mettre les mains dans le cambouis. En plus, elles se mettent à jour toutes seules alors que dans la manip que je propose, il faut mettre à jour le fichiers hosts à la main de temps en temps (une fois par trimestre dans mon cas). Personnellement, entre exploser la consommation mémoire de ma machine ou faire une manip qui prend 1 minute tous les trois mois, la décision est vite prise.

admin le 15/09/2015

@lym : j’avoue que je ne pratique pas Linux (on a tous des défauts ;-). Pouvez-vous nous préciser la bonne manip ?

admin le 15/09/2015

Bonsoir,

C’est très intéressant, mais…

Ne pas oublier non plus, que la publicité sur internet peux financer de nombreuses personnes se mettant à leur compte.

La pub n’est pas gênante si elle ne génèrent pas de pop-up ou du flash à outrance… Mais en général, les sites exploitant ces systèmes sont souvent des sites à la frontière du correct, donc plutôt minoritaire.

Question morale, tout est relatif, pour ma part c’est les applications facebook, google et twitter qui me gênent… Ces dernières étant de fait de sacrés espions bafouant ma vie privée ; pour le coup, je vois que ça ne vous gêne pas des masses par contre.

Et oui… Tout est relatif au pays du Père la morale.

Vive la liberté d’expression et bonne continuation à tous, soyez fort, la vie risque d’être de plus en plus difficile…

david96 (non vérifié) le 16/09/2015

@david96 : nous ne portons aucun jugement moral sur la publicité. Nous constatons seulement que de plus en plus d’internautes cherchent à les éradiquer avec des bloqueurs de publicité.

La majorité de ces extensions consomme beaucoup de mémoire vive et de cycles CPU. Nous proposons donc une approche alternative qui ne consomme pas de ressource (mémoire vive et cycles processeur) supplémentaire.

Cette approche (hosts) est très intéressante sur des ordinateurs ou smartphone peu puissants / anciens et pour éviter de raccourcir la durée de vie des terminaux.

Par ailleurs, elle répond aussi aux personnes qui, comme vous, souhaitent trier entre publicités acceptables et à refuser.

admin le 16/09/2015

Merci pour votre réponse, j’ai peut-être trop vite caricaturé vos propos. Je vous rejoins sur le fond.

david96 (non vérifié) le 16/09/2015

Le remplacement du fichier hosts ne marche pas chez moi (w7)…

Anonyme (non vérifié) le 16/09/2015

Ca rame a mort avec cette méthode.

Tuby (non vérifié) le 17/09/2015

@Anonyme : Voici la procédure détaillée pour Windows 7 : http://winhelp2002.mvps.org/hostswin7.htm

admin le 18/09/2015

winhelp2002 propose des procédures détaillées pour mettre à jour le hosts pour :
- Windows Vista : http://winhelp2002.mvps.org/hostsvista.htm
- Windows 7 : http://winhelp2002.mvps.org/hostswin7.htm
- Windows 8/10 : http://winhelp2002.mvps.org/hostswin8.htm

admin le 18/09/2015

@Tuby : Il n’y a aucune raison que la modification du hosts fasse ramer la machine. C’est certainement une coïncidence.

admin le 18/09/2015

Bonjour,
Il y a un vieux bug dans le cache DNS de Windows (2000 / XP / Vista / 7?)qui fait qu’avec un hosts de trop grande taille les requêtes DNS se mettent à fortement ralentir la machine.
Avec un hosts de 900 kB, RAS. Pour un hosts de 2 à 3 MB —> problème. Dans ce cas il faut désactiver le service “cache DNS” et tout rentre dans l’ordre. On peut ensuite fonctionner sans cache DNS, soit en installant un serveur DNS local (BIND? Mara DNS…).
Cordialement,
 MikeNavy

Anonyme (non vérifié) le 18/09/2015

@MikeNavy : merci pour cette info ! La plupart du temps, le hosts fait quelques centaines de Ko. le mien - qui filtre bien plus que de la pub, mais aussi des menaces, cookies traçants, etc. - fait moins de 400 Ko.

admin le 18/09/2015

Bonjour,
Je prends le temps d’une plus longue réponse, pour montrer que le fichier hosts peut participer à la protection générale d’une machine, et pas seulement filtrer les publicités.

1) Ne pas se connecter.

- Il faut bien entendu bloquer les connexions entrantes inutiles via un parefeu!

- Avant même le hosts, on peut utiliser un DNS filtrant qui diminue les risques de malwares / fishing; il s’agit d’Open DNS, gratuit:
208.67.222.222
208.67.220.220
ou en IPV6:
2620:0:ccc::2
 2620:0:ccd::2

- Pour le fichier hosts voici quelques sites complémentaires:
filtre les malwares,
http://www.malwaredomainlist.com/hostslist/hosts.txt
filtre général, publicité /adware /spyware /malware,
http://someonewhocares.org/hosts/hosts
filtre adwares / spywares,
http://pgl.yoyo.org/adservers/

- Le téléchargement et la concaténation de ces fichiers peut s’automatiser via un fichier de commande, ou en utilisant des “hosts managers”, disponibles sous Windows ou Mac OS X.

L’utilisateur de Mac OS X pourra utiliser un “hosts manager”, GasMasq, plus facile à utiliser qu’un fichier de commande.

- Une fois filtrés les sites par leurs IP, on peut alors utiliser bien plus efficacement et avec une moindre consommation de ressources un adblocker; j’utilise “ublock origin”, extension disponible pour Chrome, Firefox et Safari, qui consomme très peu de ressources.
Dans ublock origin, outre les listes de base d’ublock j’utilise:
* Adblock Warning Removal list (contre-contre-mesure)
* Anti Adblock Killer (contre-contre-mesure)
* Easy List without hiding elements (filtre publicité)
* Easy Privacy (filtre anti-tracking)
* Spam 404 (filtre malware)
* Easy List FR (complément d’Easy List)
Ces filtres sont plutôt basés sur des mots clés, ou des combinaisons de mots clés et adresses IP, et agissent donc de manière “croisée” avec les filtres IP.

2) Protection via analyse de signature.

Il peut être nécessaire d’aller plus loin avec un antivirus, basé sur l’analyse de signature. Il en existe plusieurs gratuits (Avast, Sophos…) disponibles pour Windows et Mac OS X.

On pourra compléter l’antivirus par un utilitaire spécialisé dans les spywares / adwares, comme Windows Defender ou le résident de Spybot Search & Destroy sous Windows.

3) La protection ultime contre les mécanismes d’attaque.

Tout ce qui précède a des chances de s’avérer inutile contre une attaque exploitant une faille “0 day”. Microsoft diffuse gratuitement EMET pour Windows, capable de blocker une ~vingtaine de mécanismes génériques utilisés par des attaquants pour exploiter une faille. Ce peut être une défense “de dernier recours”!

Merci de m’avoir lu!
 MikeNavy

Anonyme (non vérifié) le 18/09/2015

@MikeNavy : merci pour toutes ces infos !

admin le 18/09/2015

Merci @MikeNavy

Tuby (non vérifié) le 21/09/2015

Merci pour cet article !
Un projet github qui rassemble les différentes sources de fichiers hosts :

https://github.com/StevenBlack/hosts

Vincent

Anonyme (non vérifié) le 24/09/2015

@Vincent : nous mentionnons déjà ce projet juste à la fin de l’article dans la liste des hosts à télécharger.

admin le 24/09/2015

Mozilla corrige un bug vieux de 40 ans qui permet à AdBlock Plus de consommer bcp moins de mémoire. Détails en anglais : http://venturebeat.com/2015/09/23/mozilla-fixed-a-14-year-old-bug-in-fir…

admin le 25/09/2015

C’est vrai que sur de nombreux sites internet la publicité est intrusive et les bloquer est presque une nécessité pour pouvoir un tant soi peu naviguer dans de bonnes conditions.
En revanche, la publicité est le modèle economique par excellence pour permettre la gratuité du contenu, et sans la publicité beaucoup vont passer leur site en modèle premium où l’internaute devrait passer à la caisse.

Pierre Charles (non vérifié) le 03/10/2015

Comme quoi, les techniques les plus anciennes ne sont pas toujours obsolètes !

Bastien (non vérifié) le 12/10/2015

Cette méthode est problématique si on héberge un site sur sa machine : notre propre serveur web recevra alors toutes les requêtes “redirigées”

Anonyme (non vérifié) le 16/10/2015

@Anonyme : effectivement. Mais c’est un cas exceptionnel. 99,9% des lecteurs / lectrices n’hébergent pas de site web sur leur ordinateur.

admin le 16/10/2015

Merci pour cet article.
Pour répondre au commentaire du dessus, le projet de steven black (sur github) remplace l’utilisation de l’adresse du serveur local (127.0.0.1) par 0.0.0.0. Cela permet de ne pas perturber votre propre serveur!

ulfar (non vérifié) le 07/11/2015

Merci pour cet article.
Pour répondre au commentaire du dessus, le projet de stephen black (sur github) remplace l’utilisation de l’adresse du serveur local (127.0.0.1) par 0.0.0.0. Cela permet de ne pas perturber votre propre serveur!

Ulfar (non vérifié) le 07/11/2015

Bonjour,

J’ai découvert votre site. Je vous remercie pour les informations très claires. Je ne suis pas informaticien et j’ai reussi a mettre à jour la liste “Host”.
Encore merci

Frédéric

Frederic (non vérifié) le 13/11/2015

@Frederic : merci pour votre retour :-) !

admin le 13/11/2015

Bonjour,

Merci pour cette astuce, j’ai toujours eu peur de toucher au fichier host mais cette technique me semble en effet plus intéressante que d’utiliser Adblock.

maildeliver (non vérifié) le 06/12/2015

Bonjour !
Je viens vous dire merci pour cet article très bien détaillé. Une vieille méthode qui fait des miracles !!!

icl (non vérifié) le 16/12/2015

Merci pour cet article détaillé et bien écrit …
j utilise les dns d open dns …et un bon vpn…
en vidant le cache dns afin d éviter les fuites dns et une fois la fuite webrtc colmaté ca le fait..(applicable avec Firefox et Google chrome)

Stephane (non vérifié) le 08/01/2016

Excellent article. je vous remercie pour l’effort

Ines (non vérifié) le 24/02/2016

Poster un nouveau commentaire

Le contenu de ce champ ne sera pas montré publiquement.