在"信任"模式下使用postgresql将rails应用程序部署到github和heroku的安全隐患

Ben*_*enU 5 postgresql ruby-on-rails github heroku ruby-on-rails-3.2

Heroku "强烈建议在开发过程中使用PostgreSQL",这就是我过去几个月一直在做的事情.我使用的铁轨3.2.8和丹尼尔·基欧的优秀之间的Rails Heroku的教程和Ryan贝茨对railscast 迁移到PostgreSQL,我已经能够获得运行和部署应用程序.我的问题是postgreSQL正在做很多事情(包括角色,用户,超级用户等),我没有深入了解.我特别关注的是,我一直在本地和部署中使用"信任"身份验证.这是否意味着随机的人可以某种方式访问​​我的应用程序的数据库?

现在,然后每一个在轨/ github上interwebs我遇到引用保持应用程序的config/database.yml文件关闭github上(可能是唯一的公共或共享库),因为该文件包含密码信息.我总是看着那个文件,抓住我的脑袋.我没有在那里提供密码信息.以下是该文件对于开发,测试和生产的看法(注意,由于它们都是相同的代码,因此我只展示了三个中的一个).

[development, test or production]:
  adapter: postgresql
  encoding: unicode
  database: [myapp]_[development, test or production]
  pool: 5
  username: [myapp]
  password:
Run Code Online (Sandbox Code Playgroud)

我害怕知道我应该做些什么来使postgreSQL正确设置并在我的rails应用程序中安全部署.提前感谢任何想法.你将让世界变得更安全!

hgm*_*mnz 6

当您将rails应用程序部署到heroku时,您根本不必担心postgres配置:我们为每个应用程序提供一组新的凭据,这些凭据仅具有访问您自己的数据的权限,并且我们通过覆盖数据库使您的应用程序使用这些凭据.每次部署时都是yml.

您可以通过以下方式验证这一点

heroku run bash --app your-app
$ less app/config/database.yml
Run Code Online (Sandbox Code Playgroud)

确实,没有人应该将生产凭证放在源代码管理中(但你没有这样做).