0

在我正在开发的网站上,如果设置了 cookie,我目前正在检查用户是否已登录。问题是我将这些信息用于数据库上的一些请求,并允许他在网站上执行一些任务。不过,我想到如果用户编辑它的 cookie,他可能会成为其他人(编辑它的用户名/id)。那么,有没有办法保护它或者我必须使用会话?

4

2 回答 2

5

是的,您可以使用 cookie。您只需要确保 cookie 提供可用于验证用户身份的数据,而不是表示用户已通过身份验证的令牌。

坏饼干:

username=foo,logged_in=true

好饼干:

token=uifhjrjf4093jf3904j90j390kf934j8438j0493jf9034

然后将身份验证数据与服务器上的数据存储进行比较。

我必须使用会话吗?

会话是一种临时存储用户(可能会或可能不会通过身份验证)的方式。它们是解决部分问题的一种快速简便的方法,而不是应该引起必须做的反应的事情吗?:(

大多数会话库使用 cookie 来存储令牌,该令牌将与会话关联的数据集合链接到会话所属的浏览器。

于 2012-11-09T17:13:42.830 回答
2

我通常做的是在 cookie 中给出一个随机散列,然后将其指向一个数据库表,其中存储了完整的浏览器字符串、生存时间、最后访问时间、用户名和散列密码(用于比较万一用户因为被泄露而更改密码,这将使所有其他会话无效,除了更改密码的会话)。

于 2012-11-09T17:16:40.797 回答