0

我使用 cakePHP 2.3 已经有一段时间了,而且我看到很多人在使用$this->Session->read('Auth.User.id').,尤其是在视图中。然而,我想知道这有多安全。如果您不在 AppController 中创建类似

   function beforeRender() {

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

在您的视图中检查用户?我在手册或其他地方找不到任何关于此的说明。Session 是否足够安全,值得信赖?

4

1 回答 1

2

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

尽管如此,您最好将值从控制器传递给视图,视图不知道正确的键,因为它是在Auth组件上定义的,而且Auth组件实现可能会更改,导致视图无法访问值,例如这一点都没有了。

于 2013-09-08T20:01:54.377 回答