| |
|
|
| | делаю авторизацию. Если логин и пароль введены правильно, то генерируется случайное число
mt_srand((double)microtime()*1000000);
$uid=mt_rand(1,1000000);
|
которое хочу использовать в качестве идентификатора сессии.
Как передать и проверить этот идентификатор при переходе на другие страницы?Спасибо. | |
| |
|
|
| |
|
|
| |
для: kyzma
(11.11.2007 в 01:29)
| | | А почему не устраивает классический идентификатор сессии?
<?php
session_id($uid);
session_start();
?>
|
| |
| |
|
|
| |
|
|
| |
для: cheops
(11.11.2007 в 13:24)
| | | То есть этот код нужно вставить на странице авторизации?
А как потом проверять этот идентификатор на страницах защищенной области? | |
| |
|
|
| |
|
|
| |
для: kyzma
(11.11.2007 в 18:03)
| | | Если пользователь успешно авторизовался, то я переменной присваиваю идентификатор сессии:
$_SESSION['id'] = session_id();
|
а затем, на каждой странице защищенной области выполняю проверку:
if ($_SESSION['id'] == session_id())
{
//выполняются определённые действия
}
|
Допустим ли такой способ и не появляются ли уязвимости? Если, кто нибудь может посоветовать, пожалуйста!!! | |
| |
|
|
| |
|
|
| |
для: kyzma
(11.11.2007 в 19:36)
| | | ПОЖАЛУЙСТА!!!
Что нибудь скажите. | |
| |
|
|
| |
|
|
| |
для: kyzma
(11.11.2007 в 21:42)
| | | Не допустим, это чушь! Зачем храните id сессии в самой сессии? А как Вы его получите на другой странице?
Почитайте это. Только тут подразумевается, что ид сессии передается автоматически, через куки! Но можно, еще сделать, чтобы он передавался через GET-параметр (что не рекомендуется). | |
| |
|
|
| |
|
|
| |
для: ddhvvn
(11.11.2007 в 21:54)
| | | Ну подскажи тогда, уважаемый ddhvvn, как на других страницах проверять, авторизовался пользователь или нет. Премного благодарен!!! | |
| |
|
|
| |
|
|
| |
для: kyzma
(11.11.2007 в 22:36)
| | | Например, при входе пользователя при правильном указании данных, регистрируете в сессии переменную auth и ставите ей какой-нибудь флаг (наприм, 1).
Проверка:
<?php
...
if ($_SESSION["auth"] == 1)
{
//пользователь авторизован
}
else
{
//пользователь не авторизован
}
...
?>
|
| |
| |
|
|
| |
|
|
| |
для: ddhvvn
(11.11.2007 в 22:50)
| | | Цитирую одного очень не глупого человека:
После авторизации все скрипты защищенной части вызываются с неким флажком вида adminmode=1. (Не надо смеяться - я сам такое видел).
| |
| |
|
|
| |
|
|
| |
для: kyzma
(11.11.2007 в 23:21)
| | | > Цитирую одного очень не глупого человека
Этот человек писал похоже ситуацию с кодом для register_globals = on.
Речь похоже об этой статье: http://brb.silverage.ru/design/?act=doc&cat=php&ID=3
Делать идентификатором сессии число от 1 до 1000000 крайне рискованно. Миллион запросов? Вполне реально в наше время. Он пытается это конпенсировать проверкой IP-адреса, что мешает, должно быть, части пользователям с динамическим IP.
Вообще, скажу Вам по секрету, то что сказал cheops (а именно создание сессии) и делает за Вас передачу пользователю уникального идентификатора (session id или, проще говоря, SID) и проверки её с уже существующими.
А вот что касается совета ddhvvn'а, то он будет прекрасно работать. Никто не сможет добавить ключ "auth" в $_SESSION просто так. | |
| |
|
|
| |
|
|
| |
для: Unkind
(11.11.2007 в 23:57)
| | | Большое спасибо | |
| |
|
|