Загрузка iframe из букмарклета на сторонних сайтах убивает CakePHP Session - PullRequest
1 голос
/ 12 февраля 2010

Я пытаюсь открыть iframe из закладки, содержимое которой находится в моем тестовом приложении. Тестовое приложение мало что дает, но позвольте мне войти в систему и установить несколько сессий. Сначала я разработал это, используя Perl Catalyst Framework, и он работал отлично. Я мог бы войти в тестовое приложение в каком-либо окне или в iframe, и он мог бы нормально поддерживать сеанс на сторонних сайтах.

Теперь мне нужно было сделать что-то подобное в PHP с использованием фреймворка CakePHP. По какой-то причине в каждом браузере сеанс исчезает при открытии iframe на стороннем сайте. Он прекрасно открывается при входе в систему, если он запущен на сайте разработки (на том же сайте, на котором находится iframe src). Приложение CakePHP работает на стандартной установке Ubuntu Apache 2.

Я обнаружил, что некоторые документы, говорящие о заголовках P3P в IE, вызывают такие проблемы, но а) это во всех браузерах и б) я наблюдал с Fiddler и видел отправку заголовка P3P.

Я не наблюдал за трафиком из приложения Catalyst, чтобы увидеть, что отличалось. Думаю, это мой следующий шаг, но, честно говоря, я уже уделил этому достаточно времени. Думал, я бы поспрашивал и посмотрел, что я смогу выяснить.

Спасибо, Ник

1 Ответ

2 голосов
/ 12 февраля 2010

Это по замыслу я обнаружил. CakePHP имеет настройки в core.php, которые повышают безопасность обработки сеанса.

На этой странице есть несколько полезных советов:
http://bakery.cakephp.org/articles/view/how-to-bend-cakephp-s-session-handling-to-your-needs

В основном я сделал это:

core.php

Configure::write('Session.save', 'my_session_handler');

my_session_handler.php

ini_set('session.referer_check', ''); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...