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才能運行。如果是這種情況,我會: