我想在yii中了解这一点:
Yii::app()->user->setState('key','value');
如果我有一个大小为10的数组,我将此数组设置为如下状态:
Yii::app()->user->setState('data',$dataArray)
我有另一个大小为15000的数组,我将此数组设置为如下状态:
Yii::app()->user->setState('data',$dataArray)
这可以吗?
或者它会影响我的Yii项目的速度,即setState数据大小越大,yii项目的速度会越慢?
在Yii::app()->user->setState('password',$password)
设置密码等机密数据是否安全?
答案 0 :(得分:4)
由于安全问题变量,请不要将密码存储在setState中,但如果您需要使用某些加密。
您可以在此处看到setState函数正在使用该会话 http://www.yiiframework.com/doc/api/1.1/CWebUser#setState-detail
您可以在会话中存储尽可能多的数据。所有会话都存储在服务器上。会话的大小没有限制,但PHP可以采用的内存有限:http://ca.php.net/manual/en/ini.core.php#ini.memory-limit
关于会话中大数据的另一个非常有用的链接是
Is it okay to save lots of information in $_SESSION?
谢谢
答案 1 :(得分:0)
请不要在setState函数中保存用户个人信息,如密码或密钥等,因为这是在用户身份验证后创建的会话中设置数据。因此,请不要在setState函数中存储大数据,这会降低您的应用程序性能,无论您的会话存储在DB还是Cookie中。