Чтение онлайн

на главную

Жанры

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

Теперь добавляем еще две строки после описания ACL-записей:

http_access deny banners_path_regex !banners_exclusion

http_access deny banners_regex !banners_exclusion

Обе директивы имеют один и тот же смысл — запрещается загрузка по адресам, прописанным в списке

banners_path_regex
или
banners_regex
, если адрес не входит в исключение, описанное в файле ACL-списка
banners_exclusion
.

Рассмотрим фрагмент содержимого файла /usr/etc/banners_regex:

^http://members\.tripod\.com/adm/popup/.+html

^http://www\.geocities\.com/ad_container/pop\.html

Напоминаю,

что в этом файле находятся URL-пути для сравнения, и все адреса, которые им соответствуют, будут отфильтрованы.

В первой строке описан шаблон, по которому запрещается загрузка адресов типа:

http://members.tripod.com/adm/popup/popup.html

Так просто. И пользователи больше не увидят всплывающие окна с сайта tripod.com. Если вы знакомы с регулярными выражениями, то сможете создать подобные записи для любой баннерной системы и обрезать самые замысловатые пути надоедливых картинок. Я не буду затрагивать регулярные выражения, потому что это тема достаточно большая и требует отдельной книги.

При борьбе с баннерами будьте готовы, что "обрезание" не всегда помогает, всплывающие окна могут снова появиться через определенное время. Это связано с тем, что баннеры — просто реклама, позволяющая зарабатывать деньги на существование сайта. Особо одаренные администраторы ищут любые возможные пути для того, чтобы ваша система не смогла избавиться от рекламы. Для этого постоянно изменяются адреса, чтобы регулярное выражение не сработало.

9.5.6. Подмена баннера

Пока что мы запретили загрузку баннеров или всплывающих окон. Но после этого Web-страницы перестанут быть привлекательными. Чтобы этого не произошло, можно заменять баннеры на свои картинки, которые хранятся на сервере, и отпадет необходимость грузить их из Интернета.

Для решения этой задачи очень хорошо подходит redirector. Для сервиса squid это внешняя программа, которая подменяет адреса. Например, если сайту необходимо загрузить баннер, и ваша программа смогла определить такую попытку, то redirector подменит адрес и вместо баннера загрузит то, что укажете вы.

Есть только одна проблема — в ОС нет и не может быть готовой программы. Ее необходимо написать. Для этого подойдет любой язык программирования, а я покажу вам пример, реализованный на языке Perl. Если вы умеете программировать на этом языке, то способ с redirector понравится вам больше, чем простой запрет через ACL.

Пример классической программы redirector можно увидеть в листинге 9.2. Я постарался максимально упростить его, чтобы вам легче было адаптировать сценарий под свои задачи.

Листинг 9.2. Сценарий на языке Perl для подмены баннеров и закрытия всплывающих окон

#!/usr/bin/perl

$| = 1;

# Укажите URL на вашем Web-сервере, где лежат картинки

$YOURSITE = 'http://yourserver.com/squid';

$LOG = '/usr/etc/redirectlog';

$LAZY_WRITE = 1;

if ($LOG) {

 open LOG, ">> $LOG";

 unless ($LAZY_WRITE) {

select LOG;

$|=1;

select STDOUT;

 }

}

@b468_60 = qw (

 'www\.sitename\.com/cgi/

 #
Добавьте сюда описания URL-адресов с баннерами

 # размером 468x60

);

@b100_100 = qw (

 www\.sitename\.com/cgi/

 # Добавьте сюда описания URL-адресов с баннерами

 # размером 100x100

);

@various = qw (

 www\.sitename\.com/cgi/

 # Добавьте сюда описания URL-адресов с нестандартными

 # размерами баннера

};

@popup_window = qw (

 ^http://members\.tripod\.com/adm/popup/.+html

 ^http://www\.geocities\.com/ad_container/pop\.html

 ^http://www\.geocities\.com/toto\?

 # Добавьте сюда описания URL-адресов, с которых

 # выскакивают всплывающие окна

);

# Описание расположения картинок

$b468_60 = "$YOURSITE/468_60.gif";

$b100_100 = "$YOURSITE/100_100.gif";

$various = "$YOURSITE/empty.gif";

$closewindow = "$YOURSITE/close.htm";

while (<>) {

 ($url, $who, $ident, $method) = /^(\S+) (\S+) (\S+) (\S+)$/;

 $prev = $url;

 # Проверка баннера 468x60

 $url = $b468_60 if grep $url =~ m%$_%, @b468_60;

 # Проверка баннера 100x100

 $url = $b100_100 if grep $url =~ m%$_%, @bl00_100;

 # Проверка баннера произвольного размера

 $url = $various if grep $url =~ m%$_%, @various;

 # Всплывающее окно

Поделиться:
Популярные книги

Наваждение генерала драконов

Лунёва Мария
3. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Наваждение генерала драконов

Средневековая история. Тетралогия

Гончарова Галина Дмитриевна
Средневековая история
Фантастика:
фэнтези
попаданцы
9.16
рейтинг книги
Средневековая история. Тетралогия

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Тайный наследник для миллиардера

Тоцка Тала
Любовные романы:
современные любовные романы
5.20
рейтинг книги
Тайный наследник для миллиардера

Лорд Системы 4

Токсик Саша
4. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 4

Вперед в прошлое 5

Ратманов Денис
5. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 5

Энфис 4

Кронос Александр
4. Эрра
Фантастика:
городское фэнтези
рпг
аниме
5.00
рейтинг книги
Энфис 4

Князь

Мазин Александр Владимирович
3. Варяг
Фантастика:
альтернативная история
9.15
рейтинг книги
Князь

В теле пацана

Павлов Игорь Васильевич
1. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана

Авиатор: назад в СССР

Дорин Михаил
1. Авиатор
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Авиатор: назад в СССР

Сонный лекарь 7

Голд Джон
7. Сонный лекарь
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Сонный лекарь 7

Я снова граф. Книга XI

Дрейк Сириус
11. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я снова граф. Книга XI

Огни Эйнара. Долгожданная

Макушева Магда
1. Эйнар
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Огни Эйнара. Долгожданная

Я – Орк. Том 3

Лисицин Евгений
3. Я — Орк
Фантастика:
юмористическое фэнтези
попаданцы
5.00
рейтинг книги
Я – Орк. Том 3