我想知道何时不应该在Session中存储对象?
我正在使用用户驱动的系统,需要在登录“ Welcome back User”后定义消息,或者在错误的登录信息上定义消息,而这些消息具有不同的类型“错误,成功,警告等” ...”,因此我为其创建了一个控制器,从该Message类创建了一个新对象,将其作为序列化附加到视图,然后视图将其反序列化,然后将其从会话中删除。
我只是觉得我在这里犯了一个错误,从性能的角度来看可以使用此方法,它可能会带来什么安全问题,并且对象是否保留在服务器端内存中?还是我也应该冲洗它?
这些类型的行为通常称为消息闪烁。它们由大多数Web框架和所有Web应用程序实现。
有些使用对象来表示它们,有些只是数组。如果您的“消息对象”不是很复杂,则没有理由认为这将成为性能负担。
在安全会话方面,PHP中的数据保持序列化(您不需要自己对其进行序列化),并存储在服务器硬盘某处的文件中。可以基于会话ID cookie(每次使用session_start()时都会设置的PHP)进行检索。
您的安全性关注点通常与会话数据的安全性有关,而不是与会话中存储的消息的安全性有关,因此您可以单独研究会话数据安全性的主题。
在会话中存储消息直到消息显示给用户(然后从会话中删除消息)是司空见惯的,您不必担心这种方法的安全性问题。
另一方面,大多数MVC框架每页将使用一个控制器,这意味着仅创建一个仅用于处理消息的控制器是没有意义的(除非您的MVC使用多个控制器来呈现页面)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句