Хотелось бы узнать - возможно ли каким-то образом модифицировать переменные в сессии? Т.е. у меня все опции админа доступны если $HTTP_SESSION_VARS['userstatus'] == 3. Может ли хацкер присвоить себе такой статус и получить статус админа?
В куках хранится только идентификатор сессии, а переменные и их значения живут на сервере (обычно, в папке tmp). Если хакер получит идентификатор сессии, то он автоматически станет админом. Но чтобы её получить, ему придётся найти CSS-уязвимость в вашем сайте и спереть ваши куки.
Дай сциллу на свой сайт и часть скрипта, отвечающую за авторизацию в админке - и тогда я тебе попытаюсь ответить точно.
Ну... чтобы расставить все точки над i... Хотя и так все уже ясно... Сессии, о которых ты говоришь - надстройка только php языка. Устроены они просто. Тебе в куку или адрес кидатся идентификатор сессии и на диск пишется сессия. Либо, как было сказано, в диру /tmp обычно либо в БД. Далее php интерпритатор, при нахождении идентификатора сессии у тебя в куках либо в POST\GET запросе проверяет наличие сессии с таким же именем на диске. Если находит - то только тогда подключает файл сессий и создается переменные окружения. Т.е. они создаются уже после того, как php начал обрабатывать скрипты. Т.е. если ты, грубо говоря, обратишься по адресу localhost/?HTTP_SESSION_VARS['userstatus']=3 Ты не присвоешь этой переменной значение 3. Так как она в скриптах будет объявлена позже.