Ruby - 将密码存储为变量安全吗?

时间:2013-06-25 18:38:10

标签: ruby-on-rails ruby passwords password-protection

我正在Rails中构建一个博客Web应用程序,因为我只需要一个密码,将该密码存储为一个简单的ruby变量是安全的,例如password = "foobar"?或者我应该将它放在具有正确密码哈希的数据库中吗?

请注意,这只是一个密码我正在谈论

2 个答案:

答案 0 :(得分:1)

存储密码永远不会“安全”,即使它们是哈希并且在数据库中。我强烈建议不要这样,好像有人可以访问服务器甚至代码,他们可以很容易地获得你的密码。此外,不要编写自己的密码哈希码,微小的错误可能严重损害您的安全性。

我的建议?使用Google或其他OAuth提供商,您只需要相信谷歌是对的。这样可以免除您的密码负担。

答案 1 :(得分:0)

我认为创建一个用户模型甚至依赖像设计这样的库似乎在你的情况下过度杀戮。简单的http auth在这里应该足够好了。根据你的问题,这是否被认为是安全的,这取决于。如果您是唯一一个拥有源代码访问权限的人(例如,没有github公共存储库;您的计算机已经加密以防丢失),那么您使用的是SSL&一个HSTS标题(以防止SSL剥离)与您的网站通信,并且您使用密钥访问您的服务器(即没有ssh登录),那么我认为您可能没问题。

以下是rails 4.0

中http auth的示例

$ http_basic_authenticate_with name: "dhh", password: "secret"

例如,产品控制器看起来像这样:

 class PostsController < ApplicationController
   http_basic_authenticate_with name: "dhh", password: "secret", except: :index

   def index
     render text: "Everyone can see me!"
   end

   def edit
     render text: "I'm only accessible if you know the password"
   end
end

查看更多示例here