会话和cookie安全性和开销

时间:2012-05-23 03:27:30

标签: php

我有一个登录系统,用户可以在其中查看“记住我”选项。当用户检查该选项时,我将session_id存储到cookie中,并将其session_id,ip,浏览器信息等写入数据库会话表。因此,当用户回来时,我会确保cookie没有根据存储在会话表中的session_id / ip / browser /等进行伪造。

现在看起来它可能是很多开销和数据库写入。如果没有这么多开销,有没有更好更安全的方法呢?

1 个答案:

答案 0 :(得分:1)

这是一种权衡:当数据未存储在数据库中时,它最终会访问服务器的本地文件系统,其中PHP存储会话数据。用不同的方式表达:什么是慢?一个随机访问数据库命中或一个随机访问磁盘命中?。

我发现将会话存储到数据库是一个更优雅的解决方案,因为它比基于文件系统内容的猜测更容易跟踪用户及其会话。它还允许您在任何时候手动注销用户或模拟登录会话(一次性密码重置)。

如果你正在使用MySQL,请为" session"设置引擎。您使用MEMORY表,并且您总是会有一个非常快速的查找,不会影响用户体验。