繁体   English   中英

Facebook之类的网站是否以Cookie或会话存储已登录用户?

[英]Do websites like Facebook store logged in users in cookies or sessions?

Facebook之类的网站是否以Cookie(客户端)或会话(服务器端)的形式存储登录用户? 我的测试表明他们做了第一件事。

通常,敏感信息(例如当前登录的用户) 必须存储在服务器端-请记住,Cookie可以由用户自由读取和更改。

您可能会看到的是会话cookie,它将特定的客户端与服务器上的特定会话相关联-也就是说,服务器知道要使用哪个会话。 在这种情况下,Cookie唯一包含的是一个长而随机的会话ID-它又长又随机,因此攻击者很难轻易猜出它。

窃取另一个用户的会话cookie的行为称为会话劫持

附加信息:

我认为$_sessions背后的思想是服务器处理自己的信息而不是从客户端接收批量信息要更快,更高效。

这样看:

您(服务器)和朋友(客户端)在谈论您的另一个朋友Cindy,您的朋友是否向您提供有关她的信息的每一个细节(头发的颜色,身高等)? 不,那会浪费时间。 您可以更快地处理有关Cindy的信息(在$_session文件中,在服务器端),并且仅从您的朋友(客户端)接收唯一信息( $_cookies )。

高效:“嘿,你听到昨晚辛迪做了什么吗?”

效率不高:“嘿,昨晚您听到什么叫Cindy的棕色头发,蓝眼睛,中等身材的东西吗?”

显然,这不能完全总结$_sessions$_cookies ,但也许可以帮助某人了解有效的短期数据管理。

他们将服务器端会话与Cookie结合使用。

cookie包含一个ID,此ID发送到FaceBook,然后服务器检查具有该ID的会话的详细信息。

他们可能会使用会话,然后将一些信息存储到cookie中,例如,user_id使用session_id = ... /登录,然后在session中检查该session_id以查看用户是否仍在登录。我认为这是浪费资源。 我认为我将重要信息存储在会话中,将大信息存储在cookie中

我认为服务器端会话数据存储。 如果要持久存储用户数据,则需要将其写入服务器端数据存储中(例如,关系数据库,NoSQL键值存储等)。 查找键通常是cookie ID或登录ID。 为了加快查找速度,您可以在其前面放置一个缓存层(例如,Memcache,Redis)。 好处是您可以存储每个用户数据的任意大/复杂集合。

资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM