Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Баннерная реклама. Только не бейте…

К сожалению, фильтровать рекламу «в телевизоре» мы не научились, зато худо-бедно фильтруем рекламу в Интернете. Кто-то ставит AtGuard, кто-то настраивает Squid, кто-то — надеется на «ускорители Интернет». О том как очистить свой виртуальный мирок от баннеров сказано достаточно. Я же хочу восстановить справедливость — защитить владельцев сайтов от программ вырезающих баннеры.

Для начала отмазка. Почему-то считается, что баннеры — это зло. Они засоряют канал и снижают скорость загрузки любимого ресурса. Никто и не задумывается, как и на какие деньги, эти самые «любимые ресурсы» существуют. Так вот, открою вам глаза. Любимые ресурсы существуют за счет показов так нелюбимых баннеров. А внося свой вклад в урезание баннерных показов, вы тем самым способствуете банкротству Веб-проектов.

Итак. Для начала надо разобраться, как собственно осуществляется фильтрация подобного рода. Все очень просто. Пользователь (или изготовитель фильтра) прописывает некий набор правил, согласно которым, программа определяет, что есть баннер, а что — нет. Напрашивается вывод: чтобы ваши баннеры проходили «фейс-контроль» надо:

  1. Либо назвать их так или сунуть в такой каталог, что бы правила, заданные в программе, их не опознали;
  2. Либо сделать что-то, что бы добавить правило (а значит отличить баннер от не-баннера) не представлялось возможным.

Первый вариант отметаем сразу. По очевидным соображениям — если правил, заданных в программе, не хватает для опознания, пользователь добавит новое. Вариант номер два кажется более привлекательным, только как достичь того о чем я говорю?

Нужно будет внести кое-какие изменения в баннерную систему и в настройки Веб-сервера. Начнем с баннерной системы.

Во-первых, баннеры нужно называть совершенно произвольным образом, не придерживаясь никаких правил. Например: tri-gusia-i-utka.gif, a.gif, 1808500.jpg и т. д.

Во-вторых, скрипт, показывающий баннеры, должен подставлять в атрибут SRC правильные имена баннеров и случайным образом полученные пути. Должно получаться что-то вроде:

<IMG SRC=http://your.host.ru/aa12/a.gif>
<IMG SRC=http://your.host.ru/priale/sila/duaa1/1808500.jpg>

и т. д.

Популярные Веб-сервера (по крайней мере Apache и IIS) предоставляют возможность задать произвольную реакцию на ошибку 404 (файл не найден). Изготавливается скрипт, который будет вести себя следующим образом: при запуске он проверяет какая страница была запрошена, если это GIF- или JPEG-файл (для Apache — анализируется переменная REQUEST_URI), то скрипт пытается найти баннер с таким именем. Если находит — показывает, не находит — сообщает об ошибке «файл не найден».

Остается добавить, что схема успешно испытана и скоро будет запущена под одним из региональных порталов. Парочку подводных камней предлагается найти и разбить самостоятельно. Чтобы жизнь малиной не казалась. :)