(NB: exceptionally, this article is written in French because it’s targeted at a French, non-English speaking audience – sorry for the inconvenience)
Attention script Fiddler à mettre à jour, cf mon dernier commentaire. De plus, avec le nouveau bloquage mise en place ajourd’hui (2016-08-22), Fiddler est la seule méthode qui marche à ma connaissance. (oui pour ceux qui lisent en diagonale, ce post date à l’origine de mai 2015)
Il y a quelques mois, OVS chamboulait son système anti-anti-pub. Après quelques recherches, j’ai mis au point une méthode de contournement lourde mais imparable. Cependant entretemps OVS avait déjà allégé sa méthode, permettant un contournement simple, d’abord par l’usage de Ghostery seul à la place de Adblock + Ghostery ou d’Adblock seul, puis par la simple mise à jour des filtres AdBlock, qui ont été adaptés par le mainteneurs du projet. Je me suis donc contenté de publier ces conseils, + un script Greasemonkey juste pour le fun.
Seulement voilà, ce matin surprise, Ghostery (ou Adblock Plus ou Edge avec les filtres mis à jour) sont détectés à nouveau. Il est temps de recreuser un peu les méthodes.
MAJ du 4 mai 2015 : la méthode 1) ne marche pas encore, la méthode 2) ne marche plus… reste la méthode 3) qui marche très bien : la seule raison pour laquelle je l’ai mise en 3) et qu’elle est un peu complexe pour un novice en informatique
1) Solution triviale mais pas immédiate, et incomplète
Attendre qu’AdBlock mette à jour ses filtres 😀
2) Solution rapide, facile mais incomplète également
Utiliser Ghostery et désactiver AdBlock. Dans Ghostery, mettre en liste blanche pour OVS le tracker “SMART Adserver”.
Vous serez désormais pistable par smartadserver.com, mais vous ne verrez pas ou peu de pubs.
2.bonus) Détails techniques pour les curieux
Une des 2 protections anti-anti-pub consiste à créer un object smartadserver et à vérifier son existence:
sas.setup({ domain: 'http://ww62.smartadserver.com'}); if(typeof sas === 'undefined'){document.location='ovsadblock.php?test=sas&nav='+window.navigator.userAgent;}
La seconde est dans le même genre, mais teste simplement un objet différent:
if (!(document.getElementById("my-smartads"))) document.location='ovsadblock.php?test=jrt&nav='+window.navigator.userAgent;
3) Solution lourde mais ultime
Avec cette méthode, vous pourrez toujours vous en sortir même quand 1) et 2) seront, éventuellement, mis en échec (il faudra juste adapter le script le cas échéant). En revanche elle nécessite l’installation d’un logiciel supplémentaire, voire d’un navigateur aditionnel si vous ne voulez pas interférer avec votre surf sur les autres sites. Par souci de complétude je vais donc ici présenter la méthode avec l’utilisation d’un navigateur aditionnel.
3.1) Installer Firefox ou un dérivé (fork)
Je connais 2 grands forks de Firefox qui ont la caractéristique intéressante de pouvoir tourner en parallèle avec lui: Cyberfox et Palemoon. Selon ce que vous utilisez déjà, installez un de ces 3 navigateurs, puis configurez-le, dans les paramètres réseau, pour utiliser un proxy HTTP 127.0.0.1:9901 (la capture d’écran ci-dessous provient de Firefox 37).
3.2) Installer Fiddler
Fiddler est un freeware qui permet, entre autres, d’intercepter et modifier le traffic web. Nous l’utiliserons donc pour intercepter le traffic provenant d’OVS et retirer le(s) code(s) de protection anti-anti-pub avant de charger les pages dans le navigateur. Ainsi, la protection saute et on peut naviguer tranquillement 🙂
Fiddler est téléchargeable gratuitement ici. Le site demande un e-mail, mais vous pouvez laisser la case vide.
Installer Fiddler (à l’heure où j’écris ces lignes, la version actuelle est 4.5.1.0), puis dans Tools → Fiddler Options → Connection, configurer “Fiddler listens on port:” à 9901. Cf la capture d’écran ci-dessous.
Dans la fenêtre générale, allez sur l’onglet “FiddlerScript”, et remplacez le contenu du script par le contenu de ce fichier: OVS-Fiddler-CustomRules-20150501.js.txt. N’oubliez pas de cliquer sur “Save Script” ensuite (vous devriez entendre un bip).
Et voilà, le tour est joué, vous devriez pouvoir charger OVS dans votre nouveau navigateur (n’oubliez pas d’y installer AdBlock et/ou Ghostery, selon vos préférences, sinon évidemment vous auez les pubs :D)
3.3) Remarques (lisez si ça ne marche pas) et détails additionnels
Ca fait longtemps que j’ai réalisé ma première installation de Fiddler, du coup je ne me rappelle plus des paramètres par défaut. Il est possible en particulier que le script modifié ne soit appliqué qu’au redémarrage de Fiddler (donc si le script ne semble pas appliqué, redémarrez Fiddler, ça l’appliquera alors à coup sûr).
Il y a, dans la barre d’outils, un gros bouton “Stream” (pas visible sur ma capture d’écran car le menu ouvert est devant) : assurez-vous qu’il est décoché. Sinon, le traffic sera envoyé au navigateur AVANT d’y appliquer les modifications du script (oui, moi aussi ça me semble un peu idiot comme paramètre… mais bon c’est comme ça).
Si malgré tout, ça ne marche toujours pas, n’hésitez pas à poser vos questions en commentaires (avec captures d’écran si possible, vous pouvez les héberger facilement sur hostingpics.net par exemple).
Last but not least, à propos de mon script Fiddler, en fait la seule zone qui change par rapport au script par défaut, c’est le contenu de static function OnBeforeResponse
, autour de la ligne 278. C’est là que sont réalisés les traitements sur la page avant de la transmettre au navigateur.
Enjoy! 🙂
Toujours aussi chiant ses blocages…
Bon on va voir tout sa.
Sa deviens encore plus contraigant sur mobile faut un host propre ou sans la blocage Smartadserver.com
Oui effectivement sur mobile bonjour la galère… :/
En plus il detecte noscript il faut le desativer pour que le site daigne ce lancer sans le message anti adblock (qui est bien désativé).
La solution de j’ai fait est de m’enregistrer pour avoir mon cokie d’identification et un noscript sur le site : c’est un peu radicale certain fonction ne pas pas bien mais sa fonctionne quand même.
Pour les mobiles la seul solution est de netoyer sont host ou de retirer Smartadserver.com pour que les objet soit bon et que le site s’affiche sans le message antiadblock.
Ah ça par contre c’est bizarre, pour moi ça marche avec NoScript sur desktop, même en autorisant les redirections dans les balise <noscript>. Les seules redirections que j’ai trouvées sont celles citées dans le billet, en dur et en javascript dans le corps des pages.
J’avoue que j’ai pas vraiment fouillé dans les JS inclus par contre (tels que “fuckadblock.js”, ça ne s’invente pas…). Mais bon, le site est pas très utilisable avec JS désactivé :/
Sur mobile j’ai tout simplement laissé tomber, de toute façon trop galère de taper mon mot de passe que je ne connais pas par coeur.
Pour mobile (android rooté) voila une solution (testé a l’instant)
utiliser adaway
mettez vos liste a jour
et créer ou importer une liste blanche :
Import par exemple celui que j’ai fait
—-
# This hosts file contains exported entries from AdAway.
# Liste blanche pour OVS
white ww62.smartadserver.com*
—-
Ensuite refaire un chargement des fichier host. adway va automatiquement injecter la liste blanche.
et comme sa OVS est content .
le fait de bloquer que ww62.smartadserver.com permet de passer le check mais les pubs s’affiche pas .
Sinon je voit pas dans ce cas pourquoi mon noscript fout la merde je suis obligé de lé désativer pour que le site ne bloque pas.
J’ai peut-être un paramètre de noscript qui fout la m….. mais j’ai pas trouvé.
Sa y est j’ai trouvé ce qui genais avec noscript :
mettre en liste blanche de noscript :
ww62.smartadserver.com
sascdn.com
et la noscript ne gêne plus .
Eh bien, un peu plus d’un an après, c’est reparti pour le jeu du chat et de la souris. Cette fois le bloquage est réalisé “grâce” à un élément onerror associé au chargement d’un script Gogole Adsense: si le script Adsense ne réussit pas à se charger, onerror appelle une fonction “jeBloque”, qui redirige vers la fameuse page ovsadblock.php.
Pour l’instant, le seul contournement que j’ai trouvé consiste à nouveau à faire appel à Fiddler. Reprenez le script publié dans ce post, et après :
oSession.utilDecodeResponse();
ajoutez :
oSession.utilReplaceInResponse(‘onerror’,’data-dick’);
Je mettrai à jour le post (voire j’en créerai un nouveau, parce que là quand même vive le déterrage…) si je trouve d’autres méthodes un peu moins galère…