我现在一直在使用cakePHP 2.3,我见过很多人使用$this->Session->read('Auth.User.id')
,尤其是在视图中。然而,我想知道它有多安全。你不应该在AppController中创建类似
function beforeRender() {
if(!empty($this->Auth->user())) {
$this->set('authUser',$this->Auth->user());
}
}
在您的观看中检查用户?我在手册或其他地方找不到任何关于此的澄清。会话的安全性是否足以被指望?
答案 0 :(得分:3)
那么,根据身份验证的类型,AuthComponent::user()
(它是Cake 2.x btw中的静态方法)无论如何都会从会话中读取值(如果静态用户缓存为空)。因此,如果用户能够修改包含ID的会话值,则这两种方法都会受到损害。
尽管如此,您最好将值传递给控制器的视图,视图不知道Auth
组件上定义的正确密钥,Auth
组件实现也可能改变导致视图不再能够像这样访问这个值了。