【问题标题】:Usage and Benefits of Last Activity Storage - Session Management上次活动存储的使用和好处 - 会话管理
【发布时间】:2013-11-06 09:17:33
【问题描述】:

我一直在看到各种框架的示例和文档,这些框架将上次活动存储到数据库而不是会话数组中(暂时)。在研究了各种网站、博客和 tuts 网站后,我了解到为什么要跟踪上次活动的一个常见方法是我们可以检查用户上次注销/登录的时间。

===========

问题

一个。存储用户上次活动的主要原因和好处是什么?

湾。将用户的最后一个活动存储到数据库中而不是将它们存储到临时会话数组中的优点和缺点是什么?

C。通过使用用户的上次活动,您出于安全目的使用了哪些最佳策略?

d。有没有比上次活动存储更好的方法来跟踪用户和增强 Web 应用程序的安全性?

【问题讨论】:

    标签: php mysql codeigniter security database-design


    【解决方案1】:

    а) 这取决于您正在构建的应用程序的需求。在某些情况下它无关紧要,而在某些情况下它很重要(客户最后一次登录您的电子商务商店是什么时候?)

    b) 存储在数据库中 - 对会话活动的全局访问,这意味着您可以将其显示给当前登录的用户以外的所有/其他用户。存储在数据库中意味着更大的数据库空间,因此您将需要垃圾处理机制(Codeigniter我相信这是自动的)

    c) 如果将会话存储在服务器上,则取决于服务器的安全性,如果将其存储在数据库中,则取决于数据库的安全级别。在任何情况下,包含会话密钥的 cookie 都应该是随机的长字符串(也由 Codeigniter 处理)。就个人而言,我使用了这两种方法,具体取决于应用程序的需求。

    d) 同样,这取决于场景。例如,如果您看到该用户超过一年没有登录,并且连续 5 次尝试登录不成功,这可能意味着他忘记了密码,因此您应该给他发送一封包含重置的电子邮件链接或有人尝试登录的警告。

    【讨论】:

    • 很高兴您提供帮助 :) 好吧,感谢您提供详细而有意义的答案。 :) 你能再回答我一件事吗。如何跟踪特定用户访问我网站上特定链接的次数?比如他点击了contact-us.php链接5次,我怎么知道呢?
    • 很好,如果你将会话存储在数据库中,每次用户点击它时,你都会在你的 session_data 中添加一个属性 contact_us_visits_count 并且你会增加它。或者,如果您在用户登录时启动会话(使用用户名和密码,您甚至可以了解更多详细信息 - 您将能够确定哪个用户访问了哪个页面多少次)。然后,您可以根据这些数据构建报告。您还可以将其与 Google Analytics(分析)数据相结合,以获取有关访问者行为的更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    相关资源
    最近更新 更多