1

我读过一堆东西,说在 Rails 应用程序中使用 cookie 存储的一个缺点是客户端可以看到 cookie 数据。但是,我查看了 cookie 数据,它是加密的。解密cookie数据相对容易吗?

4

3 回答 3

6

Rails 中的默认 cookie 存储没有加密,它是 Base64 编码的。Base64 编码只是一种用 ASCII 表示二进制数据的方法,不应将其视为“加密”。任何人都可以解码它。

于 2009-08-04T21:57:32.733 回答
2

使用您在 config.rb 文件中设置的以下信息对存储的会话数据进行签名。

Rails::Initializer.run do |config|
  config.action_controller.session = {
    :session_key => '_store_session',
    :secret      => '851939c37d94574e284ded8437d4ea3447dae24cc5bda61d8eaf2731d49273bc4c620'
  }
end

因此,虽然它不容易阅读,但只要有足够的时间和精力,它也不是不可能的。

这是一堆详细讨论此问题的链接,但普遍的共识是,这不是一个有缺陷的实现,并且您不应该在会话中存储任何过于关键的内容。

于 2009-08-04T22:04:21.143 回答
1

值得知道的是,rails < 1.2.6 存在会话固定漏洞,可以轻松窃取他人的 ID/会话

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

于 2009-08-05T16:36:47.180 回答