我有一个实时运行了一段时间的 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/