Rails Rails secret key 泄漏了,是不是逆向计算任意用户 Cookie

amei · 2013年08月26日 · 最后由 yanguango 回复于 2013年09月11日 · 5153 次阅读
本帖已被管理员设置为精华贴

比如 Ruby China 用的是 cookie_store,并且 secret key 现在是知道的,如:https://github.com/ruby-china/ruby-china/blob/master/config/initializers/secret_token.rb

是不是就可以逆向计算出任意用户的 cookie?

由于 Ruby China 是用了 Devise,假如有最简单的 Rails 项目,没有使用这个 gem,是否可以呢?

部署的时候 secret_token 已经换过了。如果知道的话可以伪造 session。

  1. release = code base + config,不应该部署的时候通过脚本修改代码替代 config 的职责。
  2. 即使 RubyChina 部署的时候修改了 secret key,其他使用 RubyChina 源码部署的网站未必也修改了。

@hooopo 创建项目时就把 session key 放到 gitignore 里,例如...

#4 楼 @luikore

nyara 的目标是什么?

  1. 类似 Rails 的通用框架?
  2. 类似 Sinatra 这样的轻量级框架?
  3. 类似 Goliath 和 Grape 的 API 框架?
  4. 其他

PS. 又歪楼了。

#3 楼 @hooopo

是的,我想说的也是这一点。 如果有类似 config.yml.default 这样的处理,可能更好,否则外人并不知道部署这个应用有哪些要注意的问题 似乎 setup.rb,也么有涉及到这一点

不过 capfile 做了处理,也算给了"这个东西需要覆盖掉"的提示...

#6 楼 @amei config.yml.default 不太好吧?有人会以为改了文件名就好了,其实要改的是内容。另外可以用脚本去生成的文件不用加 .example.default 了吧..

#5 楼 @hooopo 主要目标是跑 benchmark 和 2... 周边生成工具就是个新版 simba

#7 楼 @luikore

类似 .example.default 这样的文件,我觉得主要的作用还是提醒人:必须配置什么;可以配置什么

#7 楼 @luikore #5 楼 @hooopo

好吧,simba 昨天就准备再来一发了,也该吃午饭了..

我是这样处理的:

secret_token.rb secret_token.rb.example

真实文件进 gitignore, .example 文件进 repo, readme 里写明部署时需要重置这个文件。

可以放在 WEB 服务器的环境变量的

secret_token 就是一个共享公钥,通过这个公钥加密解密 cookie

最近在看《改变未来的 9 大算法》,通俗易懂的好书,推荐大家看一看,其中第二个算法就是公钥加密

需要 登录 后方可回复, 如果你还没有账号请 注册新账号