代码之家  ›  专栏  ›  技术社区  ›  Robert Speicher

当开源一个liverails应用程序时,在源代码管理中保留会话密钥是危险的吗?

  •  8
  • Robert Speicher  · 技术社区  · 16 年前

    如果这很危险,人们通常怎么处理这个问题?我想最简单的方法就是把字符串移到一个被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应用程序中,还有什么应该在开源一个实时应用程序时受到保护的吗?

    3 回复  |  直到 16 年前
        1
  •  2
  •   John Topley    16 年前

    把问题翻过来。你会重用你刚下载的别人项目的密钥吗?很可能不会,你代码的其他聪明用户也不会。恶意用户将有一个密钥在您的主站点中用作攻击,以及针对任何懒惰到不更改密钥的用户。

        2
  •  1
  •   Patrick Cornelissen    16 年前

    我会把它放到配置文件里。无论如何,您可能需要一些配置设置,所以为什么不把它放在那里,并添加一个注释,说明在用户安装软件时应该对其进行修改。

        3
  •  0
  •   Touko    15 年前

    如果您正在更新一个已经存在的应用程序,那么可以在michaelhartl的博客中找到一些示例代码和一些使用现有会话的经验 Security issue with Rails secret session keys .