在 rails 4 注销后,所有会话数据是否都保留在客户端 cookie 中?
Are all session data preserved in client cookie after logout in rails 4?
我们过去使用操作记录存储会话,现在将其移动到 Rails 中的 cookie 存储 4. 我们了解使用 cookie 存储,除了秘密令牌和计划外,所有会话数据都存储在客户端 cookie 中仅在会话中存储 ID。这里有几个问题:
- 用户注销后,所有会话数据(例如
user_id
和 user_group_id
)是否仍保留在客户端 cookie 中以供下次登录使用?
- 例如,如果为用户分配了一个新的
user_group_id
,存储在客户端 cookie 中的旧 user_group_id
是否仍然有效并在用户下次登录时关闭该应用程序?当会话 object
在服务器上发生更改但无法在客户端进行相应更新(除非更改秘密令牌)时,有在线帖子谈论应用程序崩溃。
- 除了 4kb 大小限制和 id(会话)仅适用于 cookie 存储外,将会话从数据库移动到 cookie 存储时是否还有其他事项(或缺点)需要考虑?
这是曲奇店的低调。首先,cookie 中的所有内容一旦设置就永久存在,或者直到用户以某种方式手动删除 cookie。这意味着,如果您设置 user_id 和 user_group_id,它会永久存在于 cookie 中,直到被更新或删除。这与会话不同,因为会话就像计算机上的 ram,一旦浏览器关闭,会话及其所有数据也会随之关闭。
因此,这意味着当您注销用户时,您需要指定他们的 cookie 清空任何您不希望它拥有的内容。当您的用户登录时,您可以设置任何您希望用户在登录时拥有的内容。因此,由于会话和 cookie 是完全独立的事物,除非您选择创建它们,否则它们永远不会相互作用。因此,除非您让它这样做,否则您的会话永远不会将其自身转储到 cookie 存储中。
每次您的用户访问您的网站时,您都可以进行一次握手,以确保 cookie 与数据库匹配(如有必要)。否则,您可能会有不同的数据,哪些只在登录时更新,哪些不更新,如果没有握手,用户将不得不继续登录以确保它们仍然有效,这首先违背了拥有 cookie 的目的。
客户端 cookie 存储的缺点是安全问题。根据您使用 cookie 存储数据的方式,有人可能会在您的网站上劫持某些人的 cookie 并假装他们就是他们。这可以通过精心设计来避免,但假设您的 cookie 存储中的任何内容对每个人都是公平的游戏,因此请谨慎使用它并且仅用于非机密数据。
希望对您有所帮助!
我们过去使用操作记录存储会话,现在将其移动到 Rails 中的 cookie 存储 4. 我们了解使用 cookie 存储,除了秘密令牌和计划外,所有会话数据都存储在客户端 cookie 中仅在会话中存储 ID。这里有几个问题:
- 用户注销后,所有会话数据(例如
user_id
和user_group_id
)是否仍保留在客户端 cookie 中以供下次登录使用? - 例如,如果为用户分配了一个新的
user_group_id
,存储在客户端 cookie 中的旧user_group_id
是否仍然有效并在用户下次登录时关闭该应用程序?当会话object
在服务器上发生更改但无法在客户端进行相应更新(除非更改秘密令牌)时,有在线帖子谈论应用程序崩溃。 - 除了 4kb 大小限制和 id(会话)仅适用于 cookie 存储外,将会话从数据库移动到 cookie 存储时是否还有其他事项(或缺点)需要考虑?
这是曲奇店的低调。首先,cookie 中的所有内容一旦设置就永久存在,或者直到用户以某种方式手动删除 cookie。这意味着,如果您设置 user_id 和 user_group_id,它会永久存在于 cookie 中,直到被更新或删除。这与会话不同,因为会话就像计算机上的 ram,一旦浏览器关闭,会话及其所有数据也会随之关闭。
因此,这意味着当您注销用户时,您需要指定他们的 cookie 清空任何您不希望它拥有的内容。当您的用户登录时,您可以设置任何您希望用户在登录时拥有的内容。因此,由于会话和 cookie 是完全独立的事物,除非您选择创建它们,否则它们永远不会相互作用。因此,除非您让它这样做,否则您的会话永远不会将其自身转储到 cookie 存储中。
每次您的用户访问您的网站时,您都可以进行一次握手,以确保 cookie 与数据库匹配(如有必要)。否则,您可能会有不同的数据,哪些只在登录时更新,哪些不更新,如果没有握手,用户将不得不继续登录以确保它们仍然有效,这首先违背了拥有 cookie 的目的。
客户端 cookie 存储的缺点是安全问题。根据您使用 cookie 存储数据的方式,有人可能会在您的网站上劫持某些人的 cookie 并假装他们就是他们。这可以通过精心设计来避免,但假设您的 cookie 存储中的任何内容对每个人都是公平的游戏,因此请谨慎使用它并且仅用于非机密数据。
希望对您有所帮助!