Обход блокировки баннера AdBlock Plus и Adguard + Anti-Adblock

в 13:11, , рубрики: Песочница

Всё больше и больше веб-мастера задаются вопросом, как же обойти блокировку баннера и вывести из строя расширение AdBlock Plus и Adguard?
Оказывается, осуществить обход блокировки баннеров можно при помощи JavaScript и HTML, используя альтернативные теги, например, DIV.

Итак, что же нам потребуется?

  • Базовые знания JavaScript;
  • Базовые знания HTML.

Приступим

Давайте рассмотрим следующий JavaScript код (код полностью рабочий):

/**
	@name: Banner Creater
	@versoin: v. 0.1
	@author: Mr.MEX
	@site: hyperworld.ru
*/
function bannerCreater(opt){
	opt = opt || {};
	var h = opt.h,
		w = opt.w,
		link = opt.link,
		img = opt.img,
		title = opt.title,
		target = opt.target,
		attach = opt.attach,
		create = true,
		div = document.createElement('div'),
		result = '',
		words = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM',
		max_position = words.length - 1
	;
	for(i = 0; i < 10; ++i) {
		position = Math.floor (Math.random() * max_position);
		result = result + words.substring(position, position + 1);
	}
	var idgen = result;
	if (h == null) {
		h = 60;
	} else if (w == null) {
		w = 468;
	} else if (link == null) {
		alert('Не указана ссылка, баннер не будет создан.');
		create = false;
	} else if (img == null) {
		alert('Не указана ссылка на изображение, баннер не будет создан.');
		create = false;
	} else if (title == null) {
	
	} else if (target == null) {
		target = '_blank';
	} else if (attach == null) {
		alert('Не указан id элемента, в который будет встроен баннер, баннер не будет создан.');
		create = false;
	}
	if (create == true) {
		div.setAttribute('id',idgen);
		div.setAttribute('style','width:'+w+'px !important;height:'+h+'px !important;background-image:url(''+img+'') !important;background-repeat:repeat repeat !important;background-position:center center !important;cursor:pointer !important;');
		if (title) {
			div.setAttribute('title',title);
		}
		div.setAttribute('onclick', 'window.open(''+link+'', ''+target+'')',0);
		document.getElementById(attach).appendChild(div);
	}
}

Вроде всё просто, не правда ли?

Давайте сделаем пример.

JavaScript:

function createBanner(){
	bannerCreater({
		attach: 'bannerContainer', // ID элемента, в который будет встроен баннер (обязательный параметр)
		w: 468, // Ширина баннера (если не указать параметр, то будет по умолчанию 468 пикселей)
		h: 60, // Высота баннера (если не указать параметр, то будет по умолчанию 468 пикселей)
		link: 'http://mysite.ru/', // Ссылка на сайт (обязательный параметр)
		img: 'http://mysite.ru/banner468x60px.png', //Ссылка на изображение (обязательный параметр)
		title: 'Ролевой Каталог CoffeeBreak', // Тайтл (необязательный параметр)
		target: '_blank' // Думаю понятно, откроет ссылку на сайт в новом окне (необязательный параметр)
	});
}

HTML:

<div id="bannerContainer"></div>
<script>createBanner();</script>

Вот пример:

image

Как видно, ни Adguard, ни AdBlock Plus баннер не заблокировали.

Выводим из строя Adguard и AdBlock Plus в браузерах Webkit (Yandex, Amigo), Blink (Google Chrome, Opera)

Встраиваем в страницу JavaScript код (можно создать js и приаттачить в шапку страницы):

/**
	@name: Anti-AdBlock for Webkit Browsers
	@version: 0.2 dev. 3
	@author: Mr.MEX
	@site: hyperworld.ru
*/
function antiadblock(){
	var var1 = $('iframe[style="visibility: visible; position: fixed !important; display: block !important; border: 0px !important; -webkit-box-shadow: rgba(0, 0, 0, 0.498039) 5px 5px 20px; z-index: 2147483647; left: 50px; top: 50px; width: 416px; height: 195px; opacity: 0.7;"]'),
		var2 = $('iframe[style="visibility: visible; position: fixed !important; display: block !important; border: 0px !important; -webkit-box-shadow: rgba(0, 0, 0, 0.498039) 5px 5px 20px; z-index: 2147483647; left: 50px; top: 50px; width: 416px; height: 195px;"]'),
		var3 = $('iframe[id="adguard-assistant-dialog"]'),
		var4 = $('iframe[class="sg_ignore adg-view-important"]'),
		div = $('div[class="__adblockplus__overlay"]'),
		div2 = $('div[class="sg_border"]'),
		div3 = $('div[class="sg_border sg_bottom_border"]')
	;
	if (var1) {
		var1.remove();
	}
	if (var2) {
		var2.remove();
	}
	if (var3) {
		var3.remove();
	}
	if (var4) {
		var4.remove();
	}
	if (div) {
		div.remove();
	}
	if (div2) {
		div2.remove();
	}
	if (div3) {
		div3.remove();
	}
	setTimeout(function(){antiadblock();},250);
}
console.info('Скрипт Anti-AdBlock сейчас будет запущен...');
antiadblock();
console.info('Скрипт Anti-AdBlock работает.');

И что же этот скрипт делает?

А делает он кое что прекрасное, а именно, удаляет все теги, которые были встроены расширениями Adguard и Adblock Plus.

Когда начинает работать данный скрипт?

Работать он начинает тогда, когда пользователь решит заблокировать баннер вручную, но у него это не выйдет. При попытке блокировки расширение попросту «вешается».

Заключение

Нет ничего проще, чем взять обмануть да ещё и поломать расширения блокировки рекламы.

Знаю, что есть множество других решений, но я решил сделать что-то своё.

Всем удачи!

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js