【问题标题】:Is $this->Session->read('Auth.User.field') secure in cakePHP 2.3?$this->Session->read('Auth.User.field') 在 cakePHP 2.3 中是否安全?
【发布时间】:2013-09-08 19:16:26
【问题描述】:

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

   function beforeRender() {

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

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

【问题讨论】:

  • 取决于您对“安全”的定义。你具体关心什么?附言。请务必提及确切的 CakePHP 版本!
  • @ndm 2.3,我只是更改了它 :) 实际上,用户可以修改会话并将他的 id 更改为其他人的

标签: php cakephp


【解决方案1】:

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

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

【讨论】:

  • 感谢您的澄清,我将使用beforeRender 方法然后将身份验证用户传递给视图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-24
相关资源
最近更新 更多