Гарантированный способ потерять сессию в CakePHP 1.2RC3
Как исправить ситуацию я пока не придумал. Видимо, связано с желанием разработчиков улучшить защищенность системы.Для воспроизведения потребуется либо не очень быстрый сервер, либо сильно нагруженный сервер (хорошо бы еще добавить какой-нибудь хитрый запрос к Модели на выборку с JOIN’ами из большой таблицы - чтоб времени на запрос ощутимо уходило), или клиент на достаточно медленном канале.
Алгоритм следующий:
- Запускаем сессию и отдаем пользователю Вид (View) с двумя ссылками, например, на Controller1/action1 и на Controller2/action2
- Кликаем по первой ссылке
- Не дожидаясь загрузки страницы с видом Controller1/action1, кликаем по второй ссылке
- Сессия потеряна
Update: Как и предполагалось, это не бага, а фича для секьюрности. Лечится [вроде бы] сменой установки Security.level (в конфигурационном файле) с ‘high‘ на ‘medium‘.



Leave a Reply