【发布时间】:2010-11-16 20:05:08
【问题描述】:
我读过一堆东西,说在 Rails 应用程序中使用 cookie 存储的一个缺点是客户端可以看到 cookie 数据。但是,我查看了 cookie 数据,它是加密的。解密cookie数据相对容易吗?
【问题讨论】:
标签: ruby-on-rails security cookiestore
我读过一堆东西,说在 Rails 应用程序中使用 cookie 存储的一个缺点是客户端可以看到 cookie 数据。但是,我查看了 cookie 数据,它是加密的。解密cookie数据相对容易吗?
【问题讨论】:
标签: ruby-on-rails security cookiestore
Rails 中的默认 cookie 存储没有加密,它是 Base64 编码的。 Base64 编码只是一种用 ASCII 表示二进制数据的方法,不应将其视为“加密”。任何人都可以解码。
【讨论】:
使用您在 config.rb 文件中设置的以下信息对存储的会话数据进行签名。
Rails::Initializer.run do |config|
config.action_controller.session = {
:session_key => '_store_session',
:secret => '851939c37d94574e284ded8437d4ea3447dae24cc5bda61d8eaf2731d49273bc4c620'
}
end
所以虽然不容易读懂,但只要有足够的时间和精力,也不是不可能的。
这里有一堆链接详细讨论了这个问题,但普遍的共识是这不是一个有缺陷的实现,你不应该在会话中存储任何太关键的东西。
【讨论】:
值得知道的是,rails
Rails 1.2.4 发行说明 http://weblog.rubyonrails.org/2007/10/5/rails-1-2-4-maintenance-release
Rails 1.2.6 发行说明 http://weblog.rubyonrails.org/2007/11/24/ruby-on-rails-1-2-6-security-and-maintenance-release
CVE-2007-5380 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5380
CVE-2007-6077 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6077
【讨论】: