CakePHP 1.3.0 Значение cookie не расшифровывается - PullRequest
1 голос
/ 16 июня 2010

Я заметил в Firefox при просмотре файлов cookie, что значения, которые я сохраняю, зашифрованы.Книга CakePHP утверждает, что значения по умолчанию шифруются на write().Я предполагаю, что они автоматически расшифровываются на read().Кажется, я не могу найти gotchas в документе.

Кто-нибудь еще испытывает эту проблему?Я уверен, что что-то упустил .. Будет ли иметь значение, что устанавливаемое значение является целым числом?

Я соответственно установил ключ для компонента Cookie.

$this->Cookie->key = 'qs#$XOw!';

Ответы [ 2 ]

3 голосов
/ 15 августа 2010

Если у вас установлено исправление безопасности Suhosin, по какой-то причине дешифрование не работает вообще. Направление к проблеме и возможное решение: http://groups.google.com/group/cake-php/browse_thread/thread/7e6cda2e03a7c54/b685c58394d86f50?lnk=gst&q=decrypt+cookie#b685c58394d86f50

0 голосов
/ 30 октября 2012

Изменено в CakePHP версии 2.2

Добавлен тип шифрования 'rijndael'. Это решило проблему для меня.

http://book.cakephp.org/2.0/en/core-libraries/components/cookie.html

История

http://cakephp.lighthouseapp.com/projects/42648/tickets/471-securitycipher-function-cannot-decrypt

Тест:

class AppController extends Controller {

    function beforeFilter() 
    {
        // Using "rijndael" encryption because the default "cipher" type of encryption fails to decrypt when PHP has the Suhosin patch installed. 
        // See: http://cakephp.lighthouseapp.com/projects/42648/tickets/471-securitycipher-function-cannot-decrypt
        $this->Cookie->type('rijndael');

        // When using "rijndael" encryption the "key" value must be longer than 32 bytes.
        $this->Cookie->key = 'qSI2423424ASadsadasd2131242334SasdadAWQEAv!@*(XSL#$%)asGb$@11~_+!@#HKis~#^';

        // Works
        $result = $this->Cookie->read('Test.rijndael');
        var_dump($result);
        $this->Cookie->write('Test.rijndael', 'foo');

        // Fails
        $this->Cookie->type('cipher');
        $result = $this->Cookie->read('Test.cipher');
        var_dump($result);
        $this->Cookie->write('Test.cipher', 'foo');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...