几个月前我开始使用 PHP。为了为我的网站创建登录系统,我阅读了 cookie 和会话及其差异(cookie 存储在用户的浏览器和服务器上的会话)。那时,我更喜欢 cookie(谁不喜欢 cookie?!),只是说:“谁在乎呢?我没有什么好办法将它存储在我的服务器中”,所以,我继续使用 cookie我的本科毕业设计。但是,在完成我的应用程序的大部分内容之后,我听说对于存储用户 ID 的特殊情况,会话更合适。所以我开始思考,如果陪审团问我为什么使用 cookie 而不是会话,我会说什么?我有这个原因(我不需要在内部存储有关用户的信息)。 __? 还是不止于此? 您能告诉我使用 cookie 保存用户 ID 的优点/缺点吗?
感谢 StackOverflow 中的所有人!
这个概念是为 Web 访问者跨页面加载存储持久数据。Cookies 将其直接存储在客户端上。会话使用 cookie 作为排序键,与存储在服务器端的数据相关联。
最好使用会话,因为实际值对客户端是隐藏的,并且您可以控制数据何时过期并变为无效。如果这一切都基于 cookie,则用户(或黑客)可以操纵他们的 cookie 数据,然后向您的站点发出请求。
编辑:除了简单之外,我认为使用 cookie 没有任何优势。这样看……用户有什么理由知道他们的ID#吗?通常我会说不,用户不需要这些信息。提供信息应限制在需要知道的基础上。如果用户将他的 cookie 更改为具有不同的 ID,您的应用程序将如何响应?这是一个安全风险。
在会议风靡一时之前,我基本上有自己的实现。我在客户端上存储了一个唯一的 cookie 值,并将我的持久数据与该 cookie 值一起存储在数据库中。然后在页面请求中,我匹配了这些值并拥有我的持久数据,而不让客户控制那是什么。