[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Пересоздание НОВОЙ сессии в рамках одного кода
zuart
Приветствую.
Вопрос нетривиальный, логику работы "вход -> выход" изменить невозможно.

1. При открытии страницы стартует сессия, которая "подписывается" блоком параметров IP, User_Agent + еще парочка.
2. Адрес ссылки содержит в себе SSID.
3. При открытии другой/той же страницы по этому SSID-у возобновляется сессия и происходит проверка "подписи"...

Так вот проблема в том, что в случае некорректной подписи нужно СОЗДАТЬ НОВУЮ сессию БЕЗ УДАЛЕНИЯ СТАРОЙ...

Т.е. грубо говоря, если ссылку с SSID-ом юзер прощелкал и кто-то другой ей воспользовался, то нужно этому другому создать новую сессию и собственно говоря, выдать данные из нее, не поломав сессию валидного юзера.

Т.е. чтобы отработало что-то типа (операторы невалидные, просто логика):
session_id(SSID);
session_start();
if(!session_validate()){
session_close();
session_new_id();
session_start();
};
SSID = session_id()

Как это можно сделать без перезапросов страниц и т.п.
ApuktaChehov
Если SSID украли и так же подделали IP и юезр агента, то сервер никак не сможет отличить одного юзера от другого.

Не думаю, что есть простой способ сделать без дополнительных костылей.

Кстати, можно уменьшить время жизни сессии и сделать автологон. Например, установить сессию в 1 минуту. Тогда у злоумышленника будет только 1 минута, что бы воспользоваться украденной сессией. Отрицательная сторона, это DDoS который вы делаете сами себе, постоянным созданием сессии со всеми вытекающими. И еще надо запретить серверу создавать несуществующие сессии SSID которых пришел от юзера.

_____________
zuart
Не прокатит такое... Если юзер сидит в своем интерфейсе приложения и работает с данными, то по сути потребуется эту сессию постоянно обновлять или изменять, а значит каждый подзапрос => проход по DOM-интерфейса для смены линков + еще и урл как-то менять нужно, чтобы в случае рефреша ВАЛИДНЫЙ юзер не вывалился ...

а иногда с приложением работают более 50 тыс человек... т.е. сервак убивать пстоянным пересозданием сессий как-то не айс =(
ApuktaChehov
Цитата
Адрес ссылки содержит в себе SSID.


Почему так?

Вообще, если сессию украли и данные подделали, вы ничего не сделаете.

_____________
Быстрый ответ:

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