【问题标题】:For Rails apps, keeping your environment.rb file in your repository seems unsecure对于 Rails 应用程序,将 environment.rb 文件保存在存储库中似乎不安全
【发布时间】:2010-11-10 09:50:40
【问题描述】:

许多 Rails 应用程序使用 CookieStore 方法来存储会话。该方法的安全性主要取决于 config/environment.rb 中默认定义的会话密钥的安全性:

config.action_controller.session = {
    :session_key => '_some_name_session',
    :secret      => 'long secret key'
}

包括我自己在内的大多数人都将此文件保存在我们的 SCM 存储库中。这是否意味着如果我在咖啡店(或任何开放的无线连接)做一些工作并提交我的源代码,有人可以嗅到这个秘密并可能开始为我的应用程序创建有效会话?人们不能嗅探我提交的文件吗?这似乎是一个相当不错的安全漏洞。

【问题讨论】:

    标签: ruby-on-rails security session cookiestore


    【解决方案1】:

    如果您通过 https 或 SSH 以外的协议提交,那么是的,我相信如此。如果控制您的远程存储库服务器的人使用端口 80 而不是 443,我会坐下来与他们讨论。

    【讨论】:

    • ok...我猜 ssh 必须使用双向加密功能,以便接收方可以解密数据。所以我猜嗅探器也可以解密通过 ssh 传输的数据?
    • 这将非常困难。根据所使用的密钥强度,通常不值得人们花时间嗅探和尝试解密流量,尤其是在没有私钥的情况下。 HTTPS 更容易破解,但通常如果有人非常想要您的会话密钥,他们会尝试从您的存储库中获取它,并在您的笔记本电脑上签出或直接破解您的服务器。
    【解决方案2】:

    不一定。如果您使用的是 Subversion,您可以选择使用 HTTPS 地址而不是 HTTP 地址,并且本地计算机和版本控制服务器之间的所有通信都是安全的。

    如果 Git 和 Mercurial 没有提供相同的功能,我会感到非常惊讶。

    【讨论】:

    • Git 和 Hg 都允许通过 HTTPS 或其他安全方法(如 SSH)进行通信。
    猜你喜欢
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 2017-01-26
    相关资源
    最近更新 更多