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

на главную - закладки

Жанры

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;

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

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

Второгодка. Книга 2. Око за око

Ромов Дмитрий
2. Второгодка
Фантастика:
героическая фантастика
альтернативная история
фэнтези
5.00
рейтинг книги
Второгодка. Книга 2. Око за око

Локки 6. Потомок бога

Решетов Евгений Валерьевич
6. Локки
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Локки 6. Потомок бога

Древесный маг Орловского княжества 2

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

Точка Бифуркации VI

Смит Дейлор
6. ТБ
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Точка Бифуркации VI

Индульгенция 2. Без права на жизнь

Машуков Тимур
2. Темный сказ
Фантастика:
аниме
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Индульгенция 2. Без права на жизнь

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

Моров. Том 1 и Том 2

Кощеев Владимир
1. Моров
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Моров. Том 1 и Том 2

Князь

Шмаков Алексей Семенович
5. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
5.00
рейтинг книги
Князь

Черный Маг Императора 7 (CИ)

Герда Александр
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Черный Маг Императора 7 (CИ)

Локки 10. Потомок бога

Решетов Евгений Валерьевич
10. Локки
Фантастика:
фэнтези
юмористическое фэнтези
героическая фантастика
боевая фантастика
5.00
рейтинг книги
Локки 10. Потомок бога

Адепт

Листратов Валерий
4. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Адепт

Идеальный мир для Лекаря 19

Сапфир Олег
19. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 19

Неучтенный элемент. Том 3

NikL
3. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 3

Гримуар темного лорда IX

Грехов Тимофей
9. Гримуар темного лорда
Фантастика:
попаданцы
альтернативная история
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда IX