[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сессионная паременная
maximka787
Ребят, подскажите пожалуйста, я хочу защитить сайт от некорректной работы или взлома такого типа, как подмена id пользователя. Сейчас, пользователь, пройдя авторизацию, заносится в сессионную переменную, туда пишется USER_ID. Куки не сохраняются нигде. Мне не особо важно, будут ли красть как-то сессии или еще что, мне главное чтобы пользователь, работая в своем личном кабинете, не смог подменить сессионную переменную ID и тем самым, сохранять данные другим пользователям. Вопрос, нужно ли при авторизации сохранять связку SID + USER_ID и постоянно проверяя наличие записи разрешать что-то делать?

_____________
..Работает - не трогай!
Hello
Пользователь не может редактировать сессионные переменные

_____________
VPS от 5$, первые 2 месяца - бесплатно.
maximka787
Hello
Я слышал совсем иное. По сути в этой конструкции можно что-либо подменить или испортить?
// Авторизация
$query = "SELECT `id` FROM `profiles` WHERE
`login` = '"
.mysql_real_escape_string($_POST['login'])."' AND
`password` = '"
.mysql_real_escape_string($_POST['password'])."' LIMIT 1";

$result = mysql_query($query);
if(mysql_num_rows($result) == 1)
{
$row = mysql_fetch_array($result);
$_SESSION['user_id'] = $row['id'];
}
Там, где нужна авторизация
if(isset($_SESSION['user_id']))
{
// $_SESSION['user_id'] - основной ключ (id) для работы в системе.
}
Главное, $_SESSION['user_id'], вот это значение нельзя вообще никаким образом заменить/подменить в рамках текущей сессии?

_____________
..Работает - не трогай!
Hello
Еще раз, пользователь не может редактировать сессионные переменные
Не пишите код
$_SESSION['user_id'] = $_GET['user']

и всё у вас будет хорошо

_____________
VPS от 5$, первые 2 месяца - бесплатно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.