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

