【问题标题】:How easy is it to crack a cookie created by CookieStore from a Rails app?从 Rails 应用程序破解 CookieStore 创建的 cookie 有多容易?
【发布时间】:2010-11-16 20:05:08
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails security cookiestore


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      所以虽然不容易读懂,但只要有足够的时间和精力,也不是不可能的。

      这里有一堆链接详细讨论了这个问题,但普遍的共识是这不是一个有缺陷的实现,你不应该在会话中存储任何太关键的东西。

      【讨论】:

      • 客户端数据未加密,使用密钥签名。很大的区别。签名意味着客户端可以验证cookie数据是否被篡改(如果被篡改,签名将不匹配),但这并不能阻止任何拦截cookie数据的人能够读取它。
      • 来自 carsonified.com 的一篇关于安全 cookie 的好文章:carsonified.com/blog/dev/how-to-create-totally-secure-cookies
      【解决方案3】:
      猜你喜欢
      • 2016-07-05
      • 1970-01-01
      • 2013-02-11
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      • 2019-08-19
      相关资源
      最近更新 更多