0

我正在 Rails 中构建一个博客网络应用程序,因为我只需要一个密码,将密码存储为一个简单的 ruby​​ 变量是否安全password = "foobar"?或者我应该将其放入具有适当密码散列的数据库中?

请记住,这只是我正在谈论的一个密码

4

2 回答 2

1

即使密码被散列并在数据库中,存储密码也永远不会“安全”。我强烈建议不要这样做,就好像任何人都可以访问服务器甚至代码,他们可以很容易地获取您的密码。此外,不要编写自己的密码散列代码,微小的错误可能会严重危及您的安全。

我的建议?使用谷歌或其他 OAuth 提供商,这样你所要做的就是相信谷歌是正确的。这消除了您直接输入密码的负担。

于 2013-06-25T18:41:29.170 回答
0

我认为在您的情况下,创建用户模型甚至依赖像 devise 这样的库似乎已经过分了。简单的 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

在此处查找更多示例

于 2013-06-26T00:10:21.760 回答