ruby-on-rails - 在开源实时 Rails 应用程序时,将 session key 保密在源代码管理中是否危险?

标签 ruby-on-rails git deployment open-source

我有一个实时运行了一段时间的 Rails 应用程序,我计划在不久的将来将其开源。我想知道在应用程序运行时将 session key 存储保密在源代码管理中有多危险。

如果它很危险,人们通常如何处理这个问题?我猜最简单的方法是将字符串移动到 SCM 忽略的文本文件中,然后再读取它。

为了清楚起见,我说的是:

# Your secret key for verifying cookie session data integrity.
# If you change this key, all old sessions will become invalid!
# Make sure the secret is at least 30 characters and all random, 
# no regular words or you'll be exposed to dictionary attacks.
ActionController::Base.session = {
  :key         => '_application_session',
  :secret      => '(long, unique string)'
}

当我们谈到这个主题时,在开源实时应用程序时,默认 Rails 应用程序中是否还有其他应该受到保护的东西?

最佳答案

翻转问题。您会重复使用刚刚下载的其他人项目中的 key 吗?可能不会,您代码的其他聪明用户也不会。然后,恶意用户将获得一个 key ,可用于对您的主站点进行攻击,并攻击任何懒得不更改 key 的用户。

您可能拥有的其他不应共享的配置文件包括 database.yml、s3.yml、amazon_s3.yml 等。如果您不想将其邮寄给陌生人,请不要将其保存在您的 scm 中向世界发布您的代码。

关于ruby-on-rails - 在开源实时 Rails 应用程序时,将 session key 保密在源代码管理中是否危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2660207/

相关文章:

python - 'S 3' object has no attribute ' put_object_retention'

ruby-on-rails - 用一个表单接受多个模型

ruby-on-rails - 在不使用标签 rails 的情况下引用另一个 fixture

git - “Unregistered Git root detected” 因为项目的父目录由 Git 控制版本

Git 推/pull 路径不适用于运行 msysgit + cygwin sshd 的 Windows 源

Git 创建一个只有指定目录及其历史的新分支,然后推送到新的存储库

java - 为 GlassFish 应用程序设置权限( war 部署)

ruby-on-rails - 在 Heroku 上启动 sidekiq 时出错,缺少 sidekiq.log 文件崩溃

ruby-on-rails - 对 ActiveRecord 关联和外键的困惑

使用 git 的 Django 部署,包括与生产相关的文件