php - 上次事件存储的用途和优点 - session 管理

标签 php mysql codeigniter security database-design

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

==========

问题

a.存储用户上次事件的主要原因和好处是什么?

b.将用户的最后事件存储到数据库而不是将其存储到临时 session 数组中有何优点和缺点?

C。您通过用户上次事件来实现安全目的的最佳策略是什么?

d.有没有比上次事件存储更好的方法来跟踪用户并增强 Web 应用程序安全性?

最佳答案

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

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

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

d) 这又取决于具体情况。例如,如果您看到该用户已经超过一年没有登录,并且连续5次尝试登录失败,则可能意味着他忘记了密码,因此您应该向他发送一封包含重置密码的电子邮件链接或尝试登录的警告。

关于php - 上次事件存储的用途和优点 - session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19620597/

相关文章:

php - 如何使用php增加带有前导零的值

php - 在 Php 中从 MySql 输出中添加或删除缺货数据

mysql - 通过 ElasticSearch 搜索时如何保持规范化模型?

php - Codeigniter - 多个数据库连接 - 本地和远程

php - Codeigniter 链式查询问题

php - 如何使用 curl 发布数据并根据发布的数据获得响应

php - 尝试使用 PHP 从 MySQL 数据库检索数据时出错

php - 从多个表中搜索数据

mysql - "mysql -u root"在 Ubuntu 上从 5.6 升级到 5.7 后不起作用

apache - 从URL删除 "index.php"-Codeigniter