Просмотр полной версии : Безопасность хранения переменных в сессии.
Хотелось бы узнать - возможно ли каким-то образом модифицировать переменные в сессии?
Т.е. у меня все опции админа доступны если $HTTP_SESSION_VARS['userstatus'] == 3.
Может ли хацкер присвоить себе такой статус и получить статус админа?
В куках хранится только идентификатор сессии, а переменные и их значения живут на сервере (обычно, в папке tmp). Если хакер получит идентификатор сессии, то он автоматически станет админом. Но чтобы её получить, ему придётся найти CSS-уязвимость в вашем сайте и спереть ваши куки.
1ten0.0net1
23.04.2006, 21:12
Хотелось бы узнать - возможно ли каким-то образом модифицировать переменные в сессии?
Т.е. у меня все опции админа доступны если $HTTP_SESSION_VARS['userstatus'] == 3.
Может ли хацкер присвоить себе такой статус и получить статус админа?
Дай сциллу на свой сайт и часть скрипта, отвечающую за авторизацию в админке - и тогда я тебе попытаюсь ответить точно.
Achtung!
23.04.2006, 21:30
2Дикс да
как допишу, обязательно попрошу форумчан мой движок потестить и сорцы дам :)
а пока ладно, успокоили :)
Ну... чтобы расставить все точки над i... Хотя и так все уже ясно...
Сессии, о которых ты говоришь - надстройка только php языка. Устроены они просто. Тебе в куку или адрес кидатся идентификатор сессии и на диск пишется сессия. Либо, как было сказано, в диру /tmp обычно либо в БД. Далее php интерпритатор, при нахождении идентификатора сессии у тебя в куках либо в POST\GET запросе проверяет наличие сессии с таким же именем на диске. Если находит - то только тогда подключает файл сессий и создается переменные окружения. Т.е. они создаются уже после того, как php начал обрабатывать скрипты. Т.е. если ты, грубо говоря, обратишься по адресу
localhost/?HTTP_SESSION_VARS['userstatus']=3
Ты не присвоешь этой переменной значение 3. Так как она в скриптах будет объявлена позже.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot