Переменные внутри сессии

michelle

Новичок
Переменные внутри сессии

Доброго всем времени суток!

Кто подскажет, почему так!

1. В файле redirect.php после проверки пользователя в базе данных открываю ему сессию:

session_start();
session_register('user','passwd','hostname','referer','user_agent','remote_addr');
$user_s = $HTTP_POST_VARS['login_username'];
$passwd_s = $HTTP_POST_VARS['secretkey'];
$hostname_s = $HTTP_SERVER_VARS['HTTP_HOST'];
$referer_s = $HTTP_SERVER_VARS['HTTP_REFERER'];
$user_agent_s = $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$remote_addr_s = $HTTP_SERVER_VARS['REMOTE_ADDR'];

и преренаправляю на страницу menu.php?PHPSESSID=123fr5......

2. В файле menu.php делаю проверку:

session_id($SESSID);
session_start();

$user_n = $HTTP_SESSION_VARS['user'];
$passwd_n = $HTTP_SESSION_VARS['passwd'];
$hostname_n = $HTTP_SESSION_VARS['hostname'];
$referer_n = $HTTP_SESSION_VARS['referer'];
$user_agent_n = $HTTP_SESSION_VARS['user_agent'];
$remote_addr_n = $HTTP_SESSION_VARS['remote_addr'];

$hostname_r = $HTTP_SERVER_VARS['HTTP_HOST'];
$user_agent_r = $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$remote_addr_r = $HTTP_SERVER_VARS['REMOTE_ADDR'];

if (($hostname_n != $hostname_r) || ($user_agent_n != $user_agent_r) && ($remote_addr_n != $remote_addr_r)){
header("Location: index.php\n\n");
}

3. Открываю другой браузер (например, вначале зашли с Internet Explore'a, а затем скопировали ссылку в Netscape Navigator) и в адресной строке прописываю: menu.php?PHPSESSID=123fr5......, при этом, сессионные переменная $user_agent меняет свое значение на имя текущего браузера

Ворос:
1. ПОЧЕМУ ЭТО ТАК происходит?
2. Можно-ли ТАКИМ образом закрыть доступ к скрипту menu.php. А если нельзя, то какими способами можно обезопасить работу со скриптами?
 

makRo

Guest
Re: Переменные внутри сессии

Автор оригинала: michelle
Доброго всем времени суток!
...
1. ПОЧЕМУ ЭТО ТАК происходит?
2. Можно-ли ТАКИМ образом закрыть доступ к скрипту menu.php. А если нельзя, то какими способами можно обезопасить работу со скриптами?
ты если регишь USER_AGENT то и проверяй не USER_AGENT_N а именно то что зарегил в предыдущем скрипте
в переменной именно с этим именем )
 

michelle

Новичок
Re: Re: Переменные внутри сессии

Автор оригинала: makRo

ты если регишь USER_AGENT то и проверяй не USER_AGENT_N а именно то что зарегил в предыдущем скрипте
в переменной именно с этим именем )
Может я неправильно поставил вопрос!
НО проблема заключается в том, что в файл сессии при обращении к menu.php с другого браузера, но с этим-же ID сессии присходит автоматическое сохранение имени нового браузера!
 

michelle

Новичок
Re: Re: Переменные внутри сессии

Автор оригинала: makRo

ты если регишь USER_AGENT то и проверяй не USER_AGENT_N а именно то что зарегил в предыдущем скрипте
в переменной именно с этим именем )
Может я неправильно поставил вопрос!
НО проблема заключается в том, что в файл сессии при обращении к menu.php с другого браузера, но с этим-же ID сессии присходит автоматическое сохранение имени нового браузера!

А насколько я понимаю сторка - $user_agent_n = $HTTP_SESSION_VARS['user_agent']; должна передавать в перемннную $user_agent_n содержимое преременной сессии $HTTP_SESSION_VARS['user_agent']. Или все-таки не так?
 
Сверху