Forum Webscript.Ru

Программирование => PHP => Тема начата: Croaker от 21 Мая 2002, 15:53:10

Название: ламерский вопрос по сессиям
Отправлено: 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 стали доступны на этой самой другой странице?
Название: ламерский вопрос по сессиям
Отправлено: Fury от 21 Мая 2002, 16:36:16
unset($ulogin);
unset($upasswd);
session_start();
session_register("ulogin");
session_register("upasswd");
 
И потом $ulogin и $upasswd  - твои :)
Название: thanks
Отправлено: Croaker от 21 Мая 2002, 16:50:20
спсибо огромное
Название: ламерский вопрос по сессиям
Отправлено: Макс от 21 Мая 2002, 18:38:19
А зачем пароль в сессию записывать? Там он храниться в открытом состоянии, что теоретически не безопасно.
Регистрируй в сессии только логин, а на других страницах проверяй - если логин зарегистрирован, значит пользователь уже проходил авторизацию
Название: ламерский вопрос по сессиям
Отправлено: Croaker от 21 Мая 2002, 18:43:20
Цитировать
что теоретически не безопасно


?
Название: ламерский вопрос по сессиям
Отправлено: Dm от 21 Мая 2002, 20:27:24
Цитировать
Там он храниться в открытом состоянии

имхо, нужно как минимум хранить хеш md5
а лучше, видел неплохую статью на zend.com про добавление к самому паролю еще доп. код и общий хеш уже записывать.

Цитировать
Регистрируй в сессии только логин

хм... а если создается "липовая сессия"?
Название: ламерский вопрос по сессиям
Отправлено: Макс от 22 Мая 2002, 00:13:27
Цитировать
хм... а если создается "липовая сессия"?
Я имел ввиду для данного случая, вместо пары логин/пароль хранить в сессии только логин
Название: ламерский вопрос по сессиям
Отправлено: Dm от 22 Мая 2002, 00:33:11
Макс
все-таки, что если на сервере создается так называемая липовая сессия только с логином, тогда можно будет получить доступ?

ps. или я не прав => нужно выспаться.
Название: ламерский вопрос по сессиям
Отправлено: Макс от 22 Мая 2002, 01:09:52
Dm
Может я неправильно понял, что такое "липовая сессия".
В любом случае, если юзер не прошел авторизацию, в сессию логин записан не будет, и наличие в сессии логина свидетельствует о прохождении авторизации. Если сервер нормально настроен (защищен) никто, кроме скрипта в сессию ничего не запишет

PS
или я тебя не так понял => нужно идти спать
Название: ламерский вопрос по сессиям
Отправлено: Dm от 22 Мая 2002, 01:34:01
Макс
полностью согласен.
я предполагал дополнительную защиту от потенциальной возможности создать сессию. т.е. в случае хранения хеша пароля будет проблематично авторизоваться.

ps. все, ушел спать :) утро вечера мудренее.
Название: ламерский вопрос по сессиям
Отправлено: Croaker от 22 Мая 2002, 14:25:31
Fury
чег-то я не допонял.
uset($login) - удаляет $login, если он есть, так?
Если так, то session_start() запускает сессию, я там определяю через session_register($login) $login по новой, вытаскивая его из файла сесии. Но значение его не вытаскивается (пишет, что $login not defined). Где я не догоняю?
Название: ламерский вопрос по сессиям
Отправлено: Fury от 22 Мая 2002, 15:51:10
Croaker
 Удаляет, да, чтобы тебе логин с паролем откуда-то из другого места не пришли, вместо сессии...
Сделай print_r($HTTP_SESSION_VARS); и посмотри, что оно у тебя выводит.
Название: ламерский вопрос по сессиям
Отправлено: Fury от 22 Мая 2002, 15:54:54
Цитировать
т.е. в случае хранения хеша пароля будет проблематично авторизоваться

Я делаю так:
Смотрю логин с паролем с базе - если такая пара есть, то вынимаю из базы ID юзера.
Потом создаю сессию и туда пихаю уже ID.
Для пущей верности перед каждым session_start делаю unset($f_userid)