标签:authentication session mysql php database
我正在用php创建用户登录系统.
我一直在研究这篇文章(http://www.evolt.org/node/60384),以此作为一种解决方法.
在以上文章中,作者使用$_SESSION和他自己的自定义数据库表的组合来存储用户信息.
然而…
我也遇到过许多文章,建议使用session_set_save_handler配置php会话以本地使用数据库. (我猜这是一种较新的技术.)
我想知道:如果我打算在数据库中设置一个“ activeUsers”表来记录会话数据,那么使用session_set_save_handler有意义吗? (似乎无论如何我正在使用数据库来存储一些会话信息,我也可以省去文件系统会话.)
还是将php会话保留为默认文件系统形式,然后根据我的自定义db表对用户登录进行x检查,是否有一些优势?
在此先感谢您的帮助.
解决方法:
首先,将会话数据存储在数据库中可能有点棘手,但是一旦设置了类或函数来执行此操作,那么与文件系统存储相比,您将获得一些潜在的优势.问题是您的系统是否需要这些优势.我认为,这些是将会话数据存储在数据库中的最常见原因之一:
安全性:如果使用共享主机,则会话数据可能保存在系统其他用户可以访问的磁盘区域中.这可能对您的应用程序构成安全风险.
可扩展性:如果您的应用程序由多个服务器(例如服务器场_)处理,则需要确保来自同一客户端的多个请求(可能由不同的服务器处理)每个都接收相同的会话数据.如果会话数据在数据库中,则很容易做到.
性能:数据库存储可能会比文件系统存储提高性能,但这在很大程度上受服务器配置的影响.
数据库交互:根据会话数据的角色以及应用程序的使用方式,如果会话数据和相关信息全部在数据库中,则检索起来可能会更容易.
还需要考虑的其他事情是,您可以通过存储IP地址,登录和注销时间等其他信息来增强会话信息.尝试防止会话劫持时,此类信息可能很有用.
因此,除了可伸缩性问题之外,我认为这都是非常主观的.您需要权衡实现数据库会话存储所需的额外工作,并可能带来好处.
标签:authentication,session,mysql,php,database 来源: https://codeday.me/bug/20191210/2098134.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。