7
我在Heroku上运行的小型Sinatra应用程序使用单个管理员密码以及一对API认证密钥。在哪里存储管理员密码在sinatra + heroku应用程序?
哪里是存放这些东西的最佳地点?我是否将它们置于环境变量中,并使用
heroku config:add ADMIN_PASSWORD=foobar
?或者我使用包含它们的配置文件,而且我根本不提交配置文件?
我在Heroku上运行的小型Sinatra应用程序使用单个管理员密码以及一对API认证密钥。在哪里存储管理员密码在sinatra + heroku应用程序?
哪里是存放这些东西的最佳地点?我是否将它们置于环境变量中,并使用
heroku config:add ADMIN_PASSWORD=foobar
?或者我使用包含它们的配置文件,而且我根本不提交配置文件?
我坚持API密钥,并在配置YAML之类的事情,像这样
development:
twitter_api_key: stringstringstring
chunky: bacon
production:
twitter_api_key: gnirtsgnirtsgnirts
foo: bar
然后使用Sinatra的内置设置来处理数据。
configure do
yaml = YAML.load_file(settings.config + "/config.yaml")[settings.environment.to_s]
yaml.each_pair do |key, value|
set(key.to_sym, value)
end
end
,然后我可以从设置对象访问它们。不过,我不确定为什么你不提交配置文件。 。 。这里没有主要的安全风险,因为只有你明确定义的路径可以通过网络访问。我想如果你不想把它放在数据库中,管理员密码可以以相同的方式存储,但我至少要用salt加密它。
在定义您自己的时候,请注意不要踩在Sinatra的Configuration settings上。
编辑:
我想,我才意识到,为什么你宁愿不要犯配置文件。如果您正在开发一个开源项目,那么您肯定不希望将配置文件提交到开源代码库,但您需要将该文件提交到Heroku才能运行。如果是这种情况,我会: