我正在 Rails 中构建一个博客网络应用程序,因为我只需要一个密码,将密码存储为一个简单的 ruby 变量是否安全password = "foobar"
?或者我应该将其放入具有适当密码散列的数据库中?
请记住,这只是我正在谈论的一个密码
我正在 Rails 中构建一个博客网络应用程序,因为我只需要一个密码,将密码存储为一个简单的 ruby 变量是否安全password = "foobar"
?或者我应该将其放入具有适当密码散列的数据库中?
请记住,这只是我正在谈论的一个密码
即使密码被散列并在数据库中,存储密码也永远不会“安全”。我强烈建议不要这样做,就好像任何人都可以访问服务器甚至代码,他们可以很容易地获取您的密码。此外,不要编写自己的密码散列代码,微小的错误可能会严重危及您的安全。
我的建议?使用谷歌或其他 OAuth 提供商,这样你所要做的就是相信谷歌是正确的。这消除了您直接输入密码的负担。
我认为在您的情况下,创建用户模型甚至依赖像 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
在此处查找更多示例