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