acl banners_exclusion url_regex "/usr/etc/banners_exclusion"
Первая строка создает ACL-список с именем banners_regex
типа url_regex
, который позволяет сравнивать полный URL-адрес. В последнем параметре определен файл /usr/etc/banners_regex, в котором будут указываться нужные адреса. Нас интересуют URL баннерных систем, и вы можете поместить их в этот файл.
Вторая строка создает ACL-список с именем banners_path_regex
типа urlpath_regex
. В последнем параметре снова указан файл /usr/etc/banners_path_regex, в котором вы должны описывать пути URL, которые впоследствии мы запретим.
Третья строка схожа с первой, но имеет имя banners_exclusion
и связана с файлом /usr/etc/banners_exclusion. В первых двух файлах вы должны описывать пути или шаблоны, по которым потом будут обрезаться баннеры. Но бывают случаи, когда можно промахнуться и отсечь вполне полезную информацию. Если найден ошибочный путь, то его можно записать в этот файл, и баннер будет загружен.
Теперь добавляем еще две строки после описания 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. Я постарался максимально упростить его, чтобы вам легче было адаптировать сценарий под свои задачи.
#!/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 (
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии