|
| |
|
|
| |
для: cheops
(13.01.2007 в 00:53)
| | | Спасибо! | |
| |
|
|
| |
|
|
| |
для: tAleks
(12.01.2007 в 16:40)
| | | >Это нормальный способ? или я что-то не учел?
Нормальный. | |
| |
|
|
| |
|
|
| |
для: tAleks
(12.01.2007 в 21:29)
| | | >Люди знающие, скажите плиз, можно ли подделать сессию?
Нет, можно лишь украть SID, но это тоже не просто, да и действует он ограниченное время. | |
| |
|
|
| |
|
|
| |
для: tAleks
(12.01.2007 в 21:29)
| | | Теоретически поддлелать сессию можно всего лишь надо перебрать 36^32, а по теории вероятности его можно угадать с первого раза.
чаще всего идентификаторы сессий "воруют". | |
| |
|
|
| |
|
|
| |
для: NIK
(12.01.2007 в 22:48)
| | | Спасибо за ответ, но все же интересно мнение профи... | |
| |
|
|
| |
|
|
| |
для: tAleks
(12.01.2007 в 21:29)
| | | на счёт подделки сессии я сейчас открыл книгу - угадайте кто автор :) - вроде бы такого примера не приводилось. Но я всё-равно подстраховался бы и сделал проверку. Один запрос к БД, особенно такой простой будет занимать меньше секунды, даже разницы не будет!
> И приемлем ли используемый мною метод контроля авторизации?
я использую примерно такой же, получается что да :)
$session_user = FormDataCheck($_SESSION['winmodding_user'], 15);
$session_user_id = FormDataCheck($_SESSION['winmodding_user_id'], 5);
$session_user_password = FormDataCheck($_SESSION['winmodding_user_password'], 255);
$cookie_user = FormDataCheck($_COOKIE['winmodding_user'], 15);
$cookie_user_id = FormDataCheck($_COOKIE['winmodding_user_id'], 5);
$cookie_user_password = FormDataCheck($_COOKIE['winmodding_user_password'], 255);
if (!empty($session_user) AND !empty($session_user_id) AND !empty($session_user_password)) {
$query_sel = mysql_query("SELECT * FROM users WHERE id = '$session_user_id' AND login = '$session_user' AND password_md5 = '$session_user_password'");
if (mysql_num_rows($query_sel) == 1) {
define (WINMODDING_ID, $session_user_id);
define (WINMODDING_USER, $session_user); /
define (WINMODDING_REGISTRATED, $registrated);
define (WINMODDING_LOGIN, true);
} else $user_menu = $root."engine_includes/tpl_login.php";
} else {
if (!empty($cookie_user) AND !empty($cookie_user_id) AND !empty($cookie_user_password)) {
$query_sel = mysql_query("SELECT * FROM users WHERE id = '$cookie_user_id' AND login = '$cookie_user' AND password_md5 = '$cookie_user_password'");
if (mysql_num_rows($query_sel) == 1) {
define (WINMODDING_ID, $cookie_user_id);
define (WINMODDING_USER, $cookie_user);
define (WINMODDING_REGISTRATED, $registrated);
define (WINMODDING_LOGIN, true);
} else $user_menu = $root."engine_includes/tpl_login.php";
} else {
$user_menu = $root."engine_includes/tpl_login.php";
define (WINMODDING_ID, 0);
define (WINMODDING_USER, "Ãîñòü");
define (WINMODDING_LOGIN, false);
}
}
|
| |
| |
|
|
| |
|
|
| |
для: NIK
(12.01.2007 в 21:02)
| | | Ааа, ну если так то да... но опять же лишний запрос к БД......
Люди знающие, скажите плиз, можно ли подделать сессию?
И приемлем ли используемый мною метод контроля авторизации? | |
| |
|
|
| |
|
|
| |
для: tAleks
(12.01.2007 в 18:33)
| | | > Это чтоли при каждом обращении спрашивать Логин и Пароль?
нет. Просто заносить логин и пароль в сессию, а затем на каждой странице сверять их с реальным логином/паролем из БД/файла.
Пусть умные люди скажут, реально ли подделать обычную сессию, и если нет, то всё хорошо. | |
| |
|
|
| |
|
|
| |
для: NIK
(12.01.2007 в 17:21)
| | | >лучше делать по-другому. Заносить в значение сессии логин и пароль, а затем в вашей функции сверять, совпадают ли они с реальными.
Это чтоли при каждом обращении спрашивать Логин и Пароль?
>Я не помню, можно ли подделать сессию, но всё-равно лучше подстраховаться. К тому же если будете работать с авторизацией на куках, предложенный способ явно спасёт при подделке куки.
У меня когда юзер вводит логи и пароль. Загружаются его днанные в сессию.
А приведенная мной функция, только проверяет авторизован ли юзер. И если юзер не авторизован, она переадресует его на стр. авторизации.
Вопрос в том, приемлемый ли это метод. Или можно ли сделать как-то более грамотно? | |
| |
|
|
| |
|
|
| |
для: tAleks
(12.01.2007 в 16:40)
| | | лучше делать по-другому. Заносить в значение сессии логин и пароль, а затем в вашей функции сверять, совпадают ли они с реальными. Я не помню, можно ли подделать сессию, но всё-равно лучше подстраховаться. К тому же если будете работать с авторизацией на куках, предложенный способ явно спасёт при подделке куки. | |
| |
|
|
|