在我正在开发的一个网站上,我目前正在检查用户是否登录,如果它的cookies设置。问题是,我正在使用这些信息在数据库上进行一些请求,并允许他在网站上执行一些任务。不过,我突然想到,如果用户编辑它的cookie,他可能会成为另一个人(编辑它的用户名/id)。那么,有没有办法保护它,或者我必须使用会话?
发布于 2012-11-10 01:13:43
是的,您可以使用cookies。您只需确保cookie提供可用于验证用户身份的数据,而不是表示用户已通过身份验证的令牌。
坏cookie:
username=foo,logged_in=true好的cookie:
token=uifhjrjf4093jf3904j90j390kf934j8438j0493jf9034然后将身份验证数据与服务器上的数据存储进行比较。
我必须使用会话吗?
会话是一种临时存储用户(可能通过身份验证,也可能未通过身份验证)的方法。它们是一种快速而简单的方法来解决部分问题,而不会引起Do I have to?:(的反应。
大多数会话库使用cookies来存储令牌,该令牌将与会话关联的数据集合链接到会话所属的浏览器。
发布于 2012-11-10 01:16:41
我通常做的是在cookie中给出一个随机哈希,然后让它指向一个数据库表,在这个表中我存储了完整的浏览器字符串、生存时间、最后访问时间、用户名和散列密码(为了进行比较,如果用户因为他被泄露而更改了密码,这将使除更改其密码的会话之外的所有其他会话无效)。
https://stackoverflow.com/questions/13312725
复制相似问题