CakePHP Security::cipher() 不适用于服务器
我在读取加密的 cookie 时遇到问题.调试显示服务器上的 Security::cipher() 以某种方式损坏.反正我能解决吗?
I'm having a problem with reading the encrpyted cookie. Debugging revealed that Security::cipher() on server is somehow broken. Is there anyway I could solve it?
下面是细分.
代码
$value = "Hello World";
$key = Configure::read('Security.salt');
$val = Security::cipher($value, $key);
debug($val);
$ret = Security::cipher($val, $key);
debug($ret);
本地
appviewspageshome.ctp (line 17)
�J��WtJ0�
appviewspageshome.ctp (line 19)
Hello World
服务器
app/views/pages/home.ctp (line 17)
x�.��9v��
app/views/pages/home.ctp (line 19)
�{�U��g��O
推荐答案
Security::cipher() 正在使用 srand() 函数,该函数被 suhosin 模块禁用,该模块默认用于许多 Apache、PHP 服务器.
Security::cipher() is using srand() function which is disabled by suhosin module which comes as default for many Apache, PHP servers.
禁用 suhosin 和 Security::cipher() 将正常工作.
Disable suhosin and Security::cipher() will work fine.
相关文章