CakePHP Security::cipher() 不适用于服务器

2021-12-21 00:00:00 security php cakephp lamp cakephp-1.2

我在读取加密的 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.

相关文章