在CakePHP 2.3中是$ this-> Session-> read('Auth.User.field')安全吗?

时间:2013-09-08 19:16:27

标签: php cakephp

我现在一直在使用cakePHP 2.3,我见过很多人使用$this->Session->read('Auth.User.id'),尤其是在视图中。然而,我想知道它有多安全。你不应该在AppController中创建类似

的东西
   function beforeRender() {

    if(!empty($this->Auth->user())) {
        $this->set('authUser',$this->Auth->user());
    }
   }

在您的观看中检查用户?我在手册或其他地方找不到任何关于此的澄清。会话的安全性是否足以被指望?

1 个答案:

答案 0 :(得分:3)

那么,根据身份验证的类型,AuthComponent::user()(它是Cake 2.x btw中的静态方法)无论如何都会从会话中读取值(如果静态用户缓存为空)。因此,如果用户能够修改包含ID的会话值,则这两种方法都会受到损害。

尽管如此,您最好将值传递给控制器​​的视图,视图不知道Auth组件上定义的正确密钥,Auth组件实现也可能改变导致视图不再能够像这样访问这个值了。