0

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

==========

问题

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

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

C。通过使用用户的最后活动,您出于安全目的使用的最佳策略是什么?

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

4

1 回答 1

1

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

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

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

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

于 2013-10-27T16:54:56.750 回答