Настройка параметров сеансовых журналов

При решении вопроса о том, что следует фиксировать в сеансовом журнале о посетителе, вам предоставляется несколько вариантов выбора.

• Серверные вложения. Используя протокол SSL, вы можете передать некоторые пе- ременные окружения клиента серверному сценарию для записи параметров просмот- ра пользователем страницы сайта.

• Cookie-файлы. Мы обсуждали это средство в Главе 8, посвященной сбору данных о посетителях.

• Страницы, управляемые базами данных. С помощью протокола CGI и базы дан- ных вы можете записывать ценную информацию о визите пользователя в свою базу данных, где эти данные могут быть легко найдены.

• Анализ журналов сервера. Подчас вы можете получить информацию от серверов, которые конфигурированы на сбор в своих журналах определенных, достаточно по- лезных данных, хотя эти сведения не столь полезны, как информация в сеансовых журналах. Просто заставьте своего системного администратора конфигурировать сервер на сбор полезной вам информации, и напишите сценарий или программу для поиска в журнальных файлах данных о различных пользователях и других объектах.

• Web-жучки. Web-жучками называются скрытые в коде HTML сценарии, которые, на- пример, будучи вызванными из тега <IMG> кода HTML, выполняют сбор секретных данных, и возвращают пустой файл формата GIF или какой-либо другой, не вызы- вающий подозрения, графический файл. К сожалению компании, практикующие скрытое слежение за пользователями с помощью Web-жучков, пользуются плохой репутацией,

• Открытое слежение с помощью <IMG>. Вы можете использовать Web-жучки для слежения за своими пользователями методом, подобным описанному выше, но при этом не вызывая у них воплей негодования и зубовного скрежета. Просто выполняй- те вызов сценария CGI в теге <IMG>, но вместо возврата пустого рисунка GIF верните им графический файл, который даст понять вашим пользователям, что вы отслежи- ваете их действия на странице.

Вы можете воспользоваться огромным числом параметров, управляющих сбором ин- формации в сеансовые журналы, но как вы можете реализовать это на практике? Если вы используете язык Perl, напишите свой код HTML, далее в сценарий, генерирую- щий код страницы, добавьте код, приведенный в Листинге 30.1, в виде подпрограммы или части вашего собственного кода.

Листинг 30.1
Использование Perl для обработки сеансовых журналов
Shostname = SENV{'HTTP_HOST'}; #The following environmental variables tell (Эти пе-
ременные окружения расскажут)
Sbrowser = $ENV{'HTTPJJSEFLAGENT'}; #everything you could wish to know...almost,
(все, что вы только захотите узнать... почти)
Srequesting_ip = $ENV{1REMOTE^ADDR1};
Susername = SENVfREMOTEJDENT'};
$date = $ENV{'DATE_LOCAL'};
open (LOGFILE, ">/my/logfile/path/file"); #Print the Information you've gathered to a log
file... print LOGFILE (Печать информации, которую вы собрали в журнальном файле
LOGFILE)
"$date\t$hostname\t$requestingjp\tSbrowser\t$username\n";
close LOGFILE;

Для использования графического файла, отображаемого при скрытом или открытом слежении за пользователями с помощью Web-жучков, просто включите в сценарий код, подобный представленному в Листинге 30.1, а также дополнительный код в Лис- тинге 30.2, возвращающий графический файл.

Использование графического файла
для отслеживания активности посетителя
use CGI;
Spage = new CGI;
Simg = "/home/httpd/html/imgs/myimg.gif"; #Define the image file, open it, and print it
(Определение графического файла, открытие его и отображение)
open (IMG, "Simg"); #to the Web page *на странице Web)
$img_size = -s$img;
read IMG, Sreturn, $img_size;
print Spage->header(-type=>'image/gif), Sreturn;
close IMG;
Помните, что если вы используете страницы, генерируемые сценарием, то вы можете
также создать уникальный идентификатор ID пользователя данного сеанса и далее пере-
давать этот ID от страницы к странице. Рассмотрите следующий пример:
use CGI;
Spage = new CGI;
SID = Spage->param('ID'):
print qq[<a href="/goto/new/page/page.cgi?incoherent=yes&ID=$ID">Want
a new job?</axbr>];

Продолжение темы:

Полезная информация