Forum Webscript.Ru
Программирование => PHP => Тема начата: Croaker от 21 Мая 2002, 15:53:10
-
ника не могу разобраться.
есть страница, на которую через форму передается login и password. Сравниваю их с наличиствующими в базе и регистрирую в сессии:
$ses_n = $login.$passwd
session_name($ses_n);
session_start();
session_register("ulogin", "upasswd");
$ulogin = $login;
$upasswd = $passwd;
потом перехожу на другую страницу.
Что нужно сделать, чтобы $ulogin и $upasswd стали доступны на этой самой другой странице?
-
unset($ulogin);
unset($upasswd);
session_start();
session_register("ulogin");
session_register("upasswd");
И потом $ulogin и $upasswd - твои :)
-
спсибо огромное
-
А зачем пароль в сессию записывать? Там он храниться в открытом состоянии, что теоретически не безопасно.
Регистрируй в сессии только логин, а на других страницах проверяй - если логин зарегистрирован, значит пользователь уже проходил авторизацию
-
что теоретически не безопасно
?
-
Там он храниться в открытом состоянии
имхо, нужно как минимум хранить хеш md5
а лучше, видел неплохую статью на zend.com про добавление к самому паролю еще доп. код и общий хеш уже записывать.
Регистрируй в сессии только логин
хм... а если создается "липовая сессия"?
-
хм... а если создается "липовая сессия"?
Я имел ввиду для данного случая, вместо пары логин/пароль хранить в сессии только логин
-
Макс
все-таки, что если на сервере создается так называемая липовая сессия только с логином, тогда можно будет получить доступ?
ps. или я не прав => нужно выспаться.
-
Dm
Может я неправильно понял, что такое "липовая сессия".
В любом случае, если юзер не прошел авторизацию, в сессию логин записан не будет, и наличие в сессии логина свидетельствует о прохождении авторизации. Если сервер нормально настроен (защищен) никто, кроме скрипта в сессию ничего не запишет
PS
или я тебя не так понял => нужно идти спать
-
Макс
полностью согласен.
я предполагал дополнительную защиту от потенциальной возможности создать сессию. т.е. в случае хранения хеша пароля будет проблематично авторизоваться.
ps. все, ушел спать :) утро вечера мудренее.
-
Fury
чег-то я не допонял.
uset($login) - удаляет $login, если он есть, так?
Если так, то session_start() запускает сессию, я там определяю через session_register($login) $login по новой, вытаскивая его из файла сесии. Но значение его не вытаскивается (пишет, что $login not defined). Где я не догоняю?
-
Croaker
Удаляет, да, чтобы тебе логин с паролем откуда-то из другого места не пришли, вместо сессии...
Сделай print_r($HTTP_SESSION_VARS); и посмотри, что оно у тебя выводит.
-
т.е. в случае хранения хеша пароля будет проблематично авторизоваться
Я делаю так:
Смотрю логин с паролем с базе - если такая пара есть, то вынимаю из базы ID юзера.
Потом создаю сессию и туда пихаю уже ID.
Для пущей верности перед каждым session_start делаю unset($f_userid)