我已经阅读了一些内容,说在Rails应用程序中使用cookie存储的一个问题是客户端可以看到cookie数据。但是,我查看了cookie数据并加密了。解密cookie数据相对容易吗?
答案 0 :(得分:6)
Rails中的默认cookie存储未加密,它是Base64编码的。 Base64编码只是一种用ASCII表示二进制数据的方法,任何想象都不应该被认为是“加密”;任何人都可以解码它。
答案 1 :(得分:2)
使用您在config.rb文件中设置的以下信息对存储的会话数据进行签名。
Rails::Initializer.run do |config|
config.action_controller.session = {
:session_key => '_store_session',
:secret => '851939c37d94574e284ded8437d4ea3447dae24cc5bda61d8eaf2731d49273bc4c620'
}
end
因此,虽然阅读起来并不容易,但是有足够的时间和精力并非不可能。
这里有一堆链接,详细讨论了这个问题,但普遍的共识是,这不是一个有缺陷的实现,你不应该在会话中存储任何过于关键的内容。
答案 2 :(得分: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