Could be ABP invisible to sites ? NO. See why.

Everything about using Adblock Plus on Mozilla Firefox, Thunderbird and SeaMonkey

Could be ABP invisible to sites ? NO. See why.

Postby kukla » Wed Nov 25, 2015 3:25 pm

To begin with, I don't know how they can tell that an adblocker is being used, but would it be possible for ABP (or any other adblocker, for that matter), to be written in such a way as to be invisible to sites or services objecting to its use?

If it can't be made invisible, then, similar to the way a user agent can be spoofed, some way of tricking a site into thinking all ads are being accepted.
kukla
 
Posts: 31
Joined: Wed May 25, 2011 8:40 pm

Re: Re. Sites/Services disabled when using ABP

Postby mapx » Thu Nov 26, 2015 10:10 pm

no, there is no possibility to make it invisible.
the adblockers can't be detected directly, but by testing some elements that should be in the page (and ABP blocks or hides). If the elements aren't found, well, they push out some detecting message.
User avatar
mapx
 
Posts: 20952
Joined: Thu Jan 06, 2011 3:01 pm

Re: Re. Sites/Services disabled when using ABP

Postby kukla » Wed Dec 02, 2015 5:24 pm

mapx wrote:no, there is no possibility to make it invisible.
the adblockers can't be detected directly, but by testing some elements that should be in the page (and ABP blocks or hides). If the elements aren't found, well, they push out some detecting message.

If possible, without getting into the very technical details, can you please explain how a site can see what elements of an ad are being hidden or blocked locally? In other words, how can they see what I'm allowing or not on my computer? How is it possible for a site to get this kind of outgoing feedback about what's being hidden, and why can't that kind of feedback be blocked in some manner?
kukla
 
Posts: 31
Joined: Wed May 25, 2011 8:40 pm

Re: Re. Sites/Services disabled when using ABP

Postby lewisje » Wed Dec 02, 2015 9:05 pm

For example, Javascript can detect something like
Code: Select all
document.getElementById('ad_1').clientHeight > 0 //if false, it was hidden
or
Code: Select all
typeof variableSetByTrackingScript === 'undefined' //if true, the tracking script failed to load
Stuff like this runs on your browser and is able to check the current state of the page, as rendered in your browser, and it's part of how the modern Web works; the anti-Adblock scripts don't even need to report back home about suspected ad-blockers, although they may try.

This is why sometimes UserScripts are used, on a case-by-case basis, to cancel particular anti-Adblock scripts; even this approach isn't perfect, but it's another tool in our arsenal.

A harsher tactic that is useful for primarily text- and image-based pages with little interaction or rich content is to block inline scripts altogether, something that NoScript and uBlock Origin can do; it's what I did for liberallogic101.com (a fun place to learn how the Right misunderstands the Left in the USA) when i couldn't figure out how else to foil its anti-Adblock system (I use a Hosts file to block a certain tracking domain, so the usual ABP-style exceptions didn't work).
There's a buzzin' in my brain I really can't explain; I think about it before they make me go to bed.
lewisje
 
Posts: 2730
Joined: Mon Jun 14, 2010 12:07 pm

Re: Re. Sites/Services disabled when using ABP

Postby mapx » Wed Dec 02, 2015 9:18 pm

example:

- go to http://www.videoweed.es/file/407d0ac834987
- click play ==> you'll get an anti adblock message
- why ?

the element (script) http://www.videoweed.es/banner.php?id=4212&size=728x90
is blocked by this filter: /banner.php

the content of that script:
var v728x90=1;

see the page source, this piece of code:
Code: Select all
            var flashvars = {};
         flashvars.width=600;
         flashvars.height=450;

         flashvars.domain="http://www.videoweed.es";
         flashvars.file="407d0ac834987";
         flashvars.filekey="95.233.189.29-52cb354f9d09152002e546d06d721838";
         flashvars.advURL="0";
         flashvars.autoplay="false";
         if (typeof v728x90 !== 'undefined') {
flashvars.cid="1";
} else {
flashvars.cid="104";
}


it's the point where the player will be called with parameters (flashvars)
if the variable v728x90 isnt defined (and due to that blocked script the variable does not exist) ==> the player will be called to display the anti adblock message
(this post was redacted due to legal policy reasons)

and ...they (site owners / webmasters) will search for a new trick ...
User avatar
mapx
 
Posts: 20952
Joined: Thu Jan 06, 2011 3:01 pm


Return to Adblock Plus for Firefox support

Who is online

Users browsing this forum: Danielmow, ShawnAtons and 13 guests