会话中的OOP对象,什么时候不可以?

UX实验室

我想知道何时不应该在Session中存储对象?

我正在使用用户驱动的系统,需要在登录“ Welcome back User”后定义消息,或者在错误的登录信息上定义消息,而这些消息具有不同的类型“错误,成功,警告等” ...”,因此我为其创建了一个控制器,从该Message类创建了一个新对象,将其作为序列化附加到视图,然后视图将其反序列化,然后将其从会话中删除。

我只是觉得我在这里犯了一个错误,从性能的角度来看可以使用此方法,它可能会带来什么安全问题,并且对象是否保留在服务器端内存中?还是我也应该冲洗它?

米海·斯坦库(Mihai Stancu)

术语:

这些类型的行为通常称为消息闪烁它们由大多数Web框架和所有Web应用程序实现。

有些使用对象来表示它们,有些只是数组。如果您的“消息对象”不是很复杂,则没有理由认为这将成为性能负担。

安全:

在安全会话方面,PHP中的数据保持序列化(您不需要自己对其进行序列化),并存储在服务器硬盘某处的文件中。可以基于会话ID cookie(每次使用session_start()时都会设置的PHP)进行检索。

您的安全性关注点通常与会话数据的安全性有关,而不是与会话中存储的消息的安全性有关,因此您可以单独研究会话数据安全性的主题。

设计:

在会话中存储消息直到消息显示给用户(然后从会话中删除消息)是司空见惯的,您不必担心这种方法的安全性问题。

另一方面,大多数MVC框架每页将使用一个控制器,这意味着仅创建一个仅用于处理消息的控制器是没有意义的(除非您的MVC使用多个控制器来呈现页面)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

变异触发器,什么时候可以从触发器表中读取,什么时候不可以?

Python-什么时候可以按名称传递位置参数,什么时候不可以?

什么时候应该在OOP中创建对象?

什么时候可以腌制Python对象

在什么时候对象可以用于垃圾回收?

什么时候可以在该类的方法内创建该类的对象?

什么时候在JasperReport对象中关闭InputStream对象?

python中对象什么时候加载到内存中?

在Ruby中,为什么变量在代码块中不可以互换?

什么时候关闭休眠会话?

我什么时候可以在AlertView中编辑视图

什么时候可以在RecyclerView中获得视图的宽度?

什么时候可以省略Kotlin中的返回类型

什么时候可以省略宏中参数周围的括号?

什么时候组件可以在反应中编辑属性?

什么时候可以在函数调用中更改变量?

在Python中,两个对象什么时候相同?

什么时候是释放Java中缓存的对象的好时机?

什么时候构造函数调用中的堆栈对象?

什么时候VBA中的两个对象相同?

除了不可变的值对象,我什么时候应该覆盖equals()?

什么时候可以销毁异常对象(并且可以对其进行控制)?

什么时候可以调用getMeasuredWidth()

什么时候可以按值返回?

什么时候可以使用instanceof?

什么时候可以访问FXML属性?

什么时候可以抛出NoSuchResult

mktime什么时候可以返回-1?

什么时候可以调用onTaskRemoved()?