0

私はしばらくの間 CakePHP 2.3 を使用してきましたが$this->Session->read('Auth.User.id')、特にビューで多くの人が を使用しているのを見てきました。しかし、それがどれほど安全なのか疑問に思っています。AppControllerで次のようなものを作成しないでください

   function beforeRender() {

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

ビューでユーザーを確認するには?マニュアルや他の場所で、これについて明確な説明を見つけることができません。セッションは信頼できるほど安全ですか?

4

1 に答える 1

2

まあ、認証の種類にもよりAuthComponent::user()ますが(Cake 2.xでは静的メソッドです)とにかくセッションから値を読み取ります(静的ユーザーキャッシュが空の場合)。そのため、ユーザーが ID を保持するセッション値を変更できる場合、これらの方法は両方とも危険にさらされます。

それにもかかわらず、コントローラーからビューに値を渡すほうがよいでしょう。ビューは、Authコンポーネントで定義されている適切なキーを認識していません。また、Authコンポーネントの実装が変更され、ビューが値にアクセスできなくなる可能性があります。これはもうまったく。

于 2013-09-08T20:01:54.377 に答える