Распознавание блокировщика рекламы в браузере

Немного лирики

На днях введя в поисковую строку российского Яндекса очередной свой запрос из набора ключевых слов нашел один полезный сайтик, условно-полезный. Потому как статья там была мягко говоря отдаленная от того, что я конкретно искал, но суть не в этом и речь не об этом ;). Использую я дополнение к Mozilla Firefox под всем известным названием Adblock Plus. Что же интересного, спросят наверняка нетерпеливые читатели? Поясняю, этот веб-ресурс выдал мне белым по черному полупрозрачную заставку-заглушку вида "Ай-ай-ай, отключите-ка блокировку рекламы". Решил досконально разобраться каков же секрет подобного фокуса.

Разоблачение трюка с распознаванием Adblock

Автор сего бложика отключил Java Script. Окошко исчезло. Хорошое начало, не правда ли? Далее жму ПКМ, выбрав пункт Иходный код из контекстного меню. Начал вышаривать все присутсвующие на страничке файлы клиентских скриптов. Помимо Google Adsense удалось откопать на белый свет код библиотеки JQuery под конец которой были "аккуратненько" прописаны следующие строчки нашей поэмы:

$(document).ready(function(){
    var allAd = $(".adhere");
    var ThisBl = 0;
    for(s=0; s < allAd.length; s++){
        if(allAd.eq(s).width() < 10 || allAd.eq(s).height() < 10){
            if(ThisBl == 0){
		var bodyH = jQuery(window).height() / 2;
		var ThisUrl = window.location; ThisBl = 1;
		$("body").after('<div style="position:fixed; top:0px; left:0px; opacity: 0.9; background: #000; width:100%; height:100%; z-index:99999999; color:#fff; padding-top:'+bodyH+'px;" align="center">Отключите блокировку рекламы в браузере и <a href="'+ThisUrl+'">обновите страницу</a>.</div>');
	    }
	}
    }
});

Ниже останавлюсь только на ключевых моментах:

  • Переменная allAd задает общий "глобальный" CSS-класс рекламных блоков.
  • $("body").after('bla-bla-bla') выводит заглушку.

Вся идея по всей видимости заключается не в распознавании конкретного блокировщика рекламы, а в анализе его поведенческих особенностей. Поконкретней, теоретически любой "анти-баннер" скрывает рекламу, меняя стили-размеры искомого им блока. Java Script сниппет, приведенный выше обходит все элементыс заданным классом CSS страницы, проверяя наличие данных изменений. Соответственно, когда находит выводит предупреждение. Выражаясь языком изготовителей популярных антивирусных продуктов получается нечто типа проактивной защиты.

Пример к статье

Заблокируйте с помощью Adblock Plus мой пример условного баннера представленного ниже:

Google Adsense

Понаблюдайте за полученным эффектом.





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.