什么是记住用户的最佳选择? cookie或数据库或两者兼而有之

时间:2013-03-02 04:40:15

标签: php security cookies web

我看到很多开源网站,它使用不同的方法来记住他们的登录用户,其中一些只使用cookie,一些使用cookie和数据库。 每种方法之间的差异是什么?什么是最好的使用方法?

我认为有安全理由,任何人都可以帮助我理解吗?

4 个答案:

答案 0 :(得分:1)

所有“记住我”功能都需要cookie或其他方式在用户计算机上留下一些信息,以便您以后识别他/她。然后,您将获取这些信息,这些信息将帮助您识别服务器上的用户,并且无论您需要做什么来将他/她重新登录到您的系统中。

答案 1 :(得分:1)

要记住用户,在他们的访问中,您必须使用Cookie。 DB不能这样做。

会话变量仅适用于会话。例如如果您使用会话变量,那么您将不会在第二天“记住”用户。

您需要DB以永久方式存储有关用户的信息。你本身并不需要“记住我”的功能。如果是所有你需要了解的用户都是他们的名字,不妨把它存放在cookie本身。当用户回来时,名称就在cookie中,可以用来表示'Welcome foo'。但是,例如页面是例如一个电子邮件客户端,那么你不可能将所有用户的电子邮件存储在cookie中;不管怎样它都没有意义。在这种情况下,您将从cookie获取登录凭据,标记登录的用户,然后进入数据库以获取其电子邮件。

答案 2 :(得分:0)

Cookie更快,因为它们存储在用户计算机的本地。

数据库要求您在服务器上建立连接以获取数据。

您应该查看this question以获取更全面的指南。

答案 3 :(得分:0)

Cookie会在Sessions没有更新的情况下更新,因此我认为记住用户的最佳方式是通过Session ID和数据库