$| = 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;
# Всплывающее окно
$url = $closewindow if grep $url =~ m%$_%, @popup_window;
# Отдельный сайт, не внесенный в список в начале файла
$url = "$YOURSITE/empty.gif" if $url =~ m%hitbox\.com/Hitbox\?;
if ($LOG and $url ne $prev) {
my ($sec, $min, $hour, $mday, $mon, $year) = localtime;
printf LOG "%2d.%02d.%2d %2d:%02d:%04d: %s\r\n",
$mday, $mon + 1, $year + 1900, $hour, $min, $sec,
"$who $prev > $url";
}
print "$url $who $ident $method\n";
}
close LOG if $LOG;
Сохраните эту программу в файле /usr/etc/redirectorи установите для squid права на его исполнение. После этого добавьте в файл squid.conf следующую строку:
redirect_program /usr/local/etc/squid/redirector
Чтобы эта программа заработала, создайте на своем Web-сервере файлы со следующими именами:
□ 468_60.gif — картинка размером 468×60;
□ 100_100.gif — картинка размером 100×100;
□ empty.gif — картинка, которая будет заменять нестандартные баннеры. Лучше всего ее сделать размером 1×1 пиксель, чтобы она не испортила дизайн сайта;
□ close.htm — HTML-файл, который будет закрывать всплывающие окна. В нем нужно поместить всего лишь функцию, которая будет закрывать окно. Для этого используется JavaScript-функция window.close()
. Пример содержимого файла показан в листинге 9.3.
Все эти файлы должны лежать на Web-сервере в одной директории. Не забудьте в сценарии (в переменной $YOURSITE
) указать правильный путь к этому каталогу.
Я постарался снабдить код в листинге 9.2 комментариями. Если у вас есть опыт программирования на Perl, то дальнейшие действия вы выполните без проблем.
Листинг 9.3. Пример JavaScript-файла, закрывающего всплывающее окно
9.5.7. Борьба с запрещенными сайтами
Недавно я разговаривал с одним своим знакомым, и мне понравилось его определение Интернета — сеть создана и живет порнографией. Я не уверен, но мне кажется, что он прав в том, что трафик с сайтов с интим-содержимым самый высокий (если не считать службу обновления Microsoft, где пользователи скачивают патчи для программ этой компании :)).
Ни один работодатель не обрадуется, если его сотрудники в рабочее время будут посещать сайты с запрещенным контентом (это не только бесполезная трата трафика, но и другие непроизводительные расходы). Родители тоже не хотят, чтобы их дети рассматривали подобные сайты, поэтому стремятся оградить их от этого зрелища. Это я говорю уже как отец двоих детей.
Порно-сайты легко можно запретить с помощью таких же методов, как мы использовали для баннеров. Например, можно отключить любые сайты, в адресе которых есть слово "sex". Но нельзя забывать, что могут быть исключения. К примеру, адрес может содержать текст "Ga sExpo". Обратите внимание, что выделенные буквы создают слово "sex". А ведь это реальный случай из жизни, когда пользователь сети не смог попасть на сайт выставки по газовому оборудованию.
Читать дальше
Конец ознакомительного отрывка
Купить книгу