【问题标题】:Is it bad to get all of the variables from your database and store them as session variables?从数据库中获取所有变量并将它们存储为会话变量是不是很糟糕?
【发布时间】:2016-12-03 07:35:16
【问题描述】:

使用 jQuery 加载功能,我做到了只有网站正文加载/更改的地方。我的标题保持不变。 与其访问您的数据库(例如 50 次并在不同页面上请求相同的信息),我是否可以冒更长的原始加载时间并包含一个 php 文件,该文件将我需要的所有内容存储在用户帐户的会话变量中? 是否有任何重大的安全问题,或者我不明白为什么这是一个坏主意的任何原因? 我发现自己在各种 php 页面上一遍又一遍地访问相同的变量(如唯一 id)。

【问题讨论】:

  • 你的具体编程问题是?
  • 在标题中,基本上
  • 什么是坏的,什么不是高度取决于上下文并且是主观的回答。从你单独提出的风格来看,人们可能会说,是的,这很糟糕,但我认为这有点不公平,因为我认为你最后有一个更具体的问题。如果您改写您的问题并可能将其限制/缩小到更具体(技术)的细节,这应该会更好地回答。
  • 没关系(不是很好),只要您不需要在多个节点上扩展您的应用程序。否则,您必须将会话存储在集中式存储中,例如 memcache、redis 或数据库。但一般来说,您应该避免在会话中存储大量数据。会话应该只用于识别当前用户。其他数据应存储在其他存储中。

标签: php jquery mysqli pdo session-variables


【解决方案1】:

我觉得不错。

考虑是否需要在访问期间同步和更新域模型(用户帐户数据)并希望将其重新同步到您的客户端(视图)。但是,您所描述的是常见的会话行为。

听起来你做的级别很低,所以你可以这样做,而不使用存储库层或 dao 或类似的东西。只需阅读您需要的日期,注意并发访问即可。 对于只读,它是缓存它的完美方式。

恕我直言,这是个好主意。除了会话,你还会做什么,最好是通过 https。

考虑此处制定的安全准则: PHP Session Security

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 2020-01-29
    • 2013-10-16
    • 2018-11-13
    • 2011-07-25
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    相关资源
    最近更新 更多