Читаем Linux глазами хакера полностью

 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-файла, закрывающего всплывающее окно

 

 

 

 

 

Перейти на страницу:

Похожие книги