Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Pavel V. Ammosov                     2:5020/52      15 May 2001  00:35:39
 To : All
 Subject : Re: session_id
 -------------------------------------------------------------------------------- 
 
 
 > - Hi, Alex!
 >
 >On Sat, 12 May 01 19:16:03 +0500 Alex Shevchuk wrote:
 >
 > AS>  Hе-а, не пойдет. А если повторится? А мне нужен уникальный
 > AS>  идентификатор, который не будет повторяться, к примеру, хотя бы
 > AS>  неделю. Смотри в одном из моих предыдущих писем, для чего мне
 > AS>  нужен этот id...
 >
 >у апачей 1.3.x есть для этого модуль mod_unique_id.  этот id
 >выставляется в переменной окружения UNIQUE_ID и является уникальным для
 >каждого запроса.  правда, делается он из тех же IP, PID и timestamp
 >и в принципе может быть predictable.
 
 Он представляет из себя 112 байтную строку, закодированную, аналогично 
 MIME кодировке BASE64, но с заменой +/ на @-, чтоб избежать необходимости 
 кодирования при передаче в url.
 
 Сама строка состоит из: (32 bit timestamp, 32 bit IP адрес сервера, 32 bit PID 
 сервера, 16 бит счетчика), вот подпрограмма декодирования:
 
 sub decode_uniq_id($) {
   my $uid = shift;
   
   $uid =~ y/@/+/;
   $uid =~ y/-/\//;
   my $decoded = decode_base64($uid);
   my $timestamp = unpack("N", substr($decoded, 0, 4));
   my $ip_addr = join(".", unpack("C4", substr($decoded, 4, 4)));
   my $pid = unpack("N", substr($decoded, 8, 4));
   my $cntr = unpack("n", substr($decoded, 12, 2));
 
   return ($timestamp, $ip_addr, $pid, $cntr);
 }  
 
 То есть, все вполне предсказуемо -- IP известен, время известно, 
 процессов apache будет врятли очень много, а если трафик небольшой,
 то и счетчик будет предсказуем.
 -- 
 Pavel Ammosov                                               O    \
 apavel@aha.ru                                                 __  )
 http://isabase.philol.msu.ru/~apavel/                             )
 wget -O - isabase.philol.msu.ru/~apavel/key.asc|pgp -fka    O    /
 --- slrn/0.9.6.3 (Linux)
  * Origin: Zenon N.S.P. news server (2:5020/52.0)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: session_id   Pavel V. Ammosov   15 May 2001 00:35:39 
Архивное /ru.cgi.perl/82044b0180912.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional