Печенье CakePHP становится вскармливанным - Сухозин, связанный - PullRequest
7 голосов
/ 18 января 2011

По какой-то причине я не могу прочитать файлы cookie из моего приложения CakePHP на любой странице после того, как они были заданы, единственное, что возвращается, это искаженный текст.

Мой код прост:

$this->Cookie->write('Region', 'test');
$reg = $this->Cookie->read('Region');
pr($reg);

Я раскомментирую строку $ this-> Cookie-> write (), и все, что я получаю, это набор случайных управляющих символов. Я также недавно обновил до CakePHP 1.3, но AFAIK это не должно влиять на cookie, как это ... Это работало нормально, пока я не изменил сервер , это должно быть корнем моей проблемы.

Обновление После дальнейшего изучения я обнаружил, что это известная проблема с исправлением безопасности Suhosin для PHP, влияющим на методы rand () и srand (), я настроил Suhosin, чтобы разрешить функции rand (), но все же это происходит, есть ли более эффективная работа там?

Ответы [ 2 ]

7 голосов
/ 18 января 2011

Попробуйте этот код, который отключит шифрование cookie:

$this->Cookie->write('Region', 'test', false);
$reg = $this->Cookie->read('Region');
pr($reg);

Метод записи имеет следующие параметры:

write(mixed $key, mixed $value, boolean $encrypt, mixed $expires)

По умолчанию все значения в куки зашифрованы CakePHP. Однако по соображениям безопасности вы можете рассмотреть возможность работы с шифрованием.

1 голос
/ 18 января 2011

CakePHP шифрует куки по умолчанию.

Одинаково ли значение вашей Security.salt в этой новой установке?

Как насчет значения $ key в настройках вашего контроллера cookie?

...