gra*_*tur 7 security heroku sinatra
我有一个我在Heroku上运行的小型Sinatra应用程序,它使用单个管理员密码,以及一些API身份验证密钥.
哪里是存放这些东西的最佳地点?我是否将它们放在环境变量中,然后使用
heroku config:add ADMIN_PASSWORD=foobar
Run Code Online (Sandbox Code Playgroud)
?或者我使用包含它们的配置文件,我只是不提交配置文件?
Dor*_*ime 12
我坚持使用API键和配置yaml中的那种东西,就像这样
development:
twitter_api_key: stringstringstring
chunky: bacon
production:
twitter_api_key: gnirtsgnirtsgnirts
foo: bar
Run Code Online (Sandbox Code Playgroud)
然后使用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
Run Code Online (Sandbox Code Playgroud)
然后我可以从设置对象访问它们.不过,我不知道你为什么不提交配置文件...这里没有重大的安全风险,因为只有那些你明确定义的路径才能通过网络访问.如果你不想把它放在一个数据库中,我想管理密码可以以相同的方式存储,但我至少用盐加密它.
在定义自己的配置设置时,请注意不要踩到Sinatra的配置设置.
编辑:
我想我刚才意识到为什么你不想提交配置文件.如果您正在开发一个开源项目,您当然不希望将配置文件提交到您的开源代码库,但您需要将该文件提交给Heroku才能使其正常工作.如果是这种情况,我要么:
| 归档时间: |
|
| 查看次数: |
1651 次 |
| 最近记录: |