当前位置:  开发笔记 > 后端 > 正文

Ruby On Rails中CookieStore会话和加密Cookie之间的区别

如何解决《RubyOnRails中CookieStore会话和加密Cookie之间的区别》经验,为你挑选了1个好方法。

我想知道会话加密cookie之间是否有任何区别(配置为在会话cookie中过期).

它们不是完全相同的东西吗?或者Rails为会话提供额外的安全性?



1> Justin Grant..:

会话比cookie更高级.会话是仅为一个用户会话持久存在的变量集合.会话可以存储在cookie中,数据库中,也可以存储在会话处理插件选择存储它们的任何位置.Cookie现在是会话存储在现代版Rails中的默认位置.注意:当会话存储在cookie之外时,cookie中存储了一个ID,因此Rails可以在存储的任何地方查找会话数据(例如数据库).

现在,让我继续讨论我想要问的内容:Rails的默认会话存储(使用未加密的cookie)和Phusion的EncryptedCookieStore或任何其他加密cookie会话存储实现之间的区别是什么?你为什么关心加密会话cookie?

根据http://agilewebdevelopment.com/plugins/encrypted_cookie_store,这里有一个区别:" EncryptedCookieStore类似于Ruby on Rails的CookieStore(它将会话数据保存在cookie中),但是它使用加密使人们不能读取会话数据中的内容.这样就可以在会话中存储敏感数据. "

请注意,有多个不同的EncryptedCookieStore.AFAIK,你想使用 Phusion的EncryptedCookieStore而不是ThinkRelevance的旧EncryptedCookieStore.

如果您不加密cookie,那么任何有权访问cookie的人都可以轻松读取会话数据(通过网络嗅探器,对客户端的磁盘访问,XSS等).有关会话变量如何存储到cookie中的详细信息(沿有安全隐患),请看这里:http://www.neeraj.name/2009/05/04/how-cookie-stores-session-data-in-rails.html.

请注意,默认(非加密)cookie存储是防篡改的(意味着Rails将拒绝恶意更改的cookie).因此,如果您担心的是阻止人们更改您的Cookie(但如果他们看到您的Cookie,则不在乎),那么您可以使用默认设置.


Rails使用HMAC(http://en.wikipedia.org/wiki/HMAC)来保证没有人根据Rails如何在那里存储cookie来修改cookie.
推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有