Dun*_*zzz 7 php cakephp suhosin
出于某种原因,我无法在设置任何页面后从我的CakePHP应用程序中读取任何cookie,唯一返回的是乱码文本.
我的代码就像这样简单:
$this->Cookie->write('Region', 'test');
$reg = $this->Cookie->read('Region');
pr($reg);
Run Code Online (Sandbox Code Playgroud)
我取消注释$ this-> Cookie-> write()行,我得到的是一堆随机控制字符.我最近也升级到了CakePHP 1.3,但AFAIK这不应该影响这样的cookie ......这个工作正常,直到我更换服务器,这一定是我问题的根源.
更新 在进一步探测之后我发现这是一个已知的问题,用于PHP的Suhosin安全补丁影响rand()和srand()方法,我已经配置了Suhosin以允许rand()函数但是它仍在发生,是否存在那里有更有效的工作吗?
试试这个禁用cookie加密的代码:
$this->Cookie->write('Region', 'test', false);
$reg = $this->Cookie->read('Region');
pr($reg);
Run Code Online (Sandbox Code Playgroud)
write方法有以下参数:
write(mixed $key, mixed $value, boolean $encrypt, mixed $expires)
默认情况下,Cookie中的所有值都由CakePHP加密.但出于安全原因,您可能希望考虑使用加密.