我应该将 Stripe 的可发布密钥和私有密钥放在哪里?



我在开发环境中工作。

我在/config/initializers 下有一个 stripe.rb 文件,它的内容是:

Rails.configuration.stripe = {
  :publishable_key => ENV['PUBLISHABLE_KEY'],
  :secret_key      => ENV['SECRET_KEY']
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]

我试图将它们放在那里(在 ENV['key-here'] 中),但 Stripe 无法识别它们并返回错误。

为了使它工作,我在像这样启动我的 rails 服务器之前传递它们:

PUBLISHABLE_KEY=pk_test_XXXXXXXXXXXXX SECRET_KEY=sk_test_XXXXXXXXXXXX rails s

我应该将这些值放在我的 Rails 应用程序中的什么位置?(因为我很快就会在生产中部署)

谢谢

我应该将这些值放在我的 Rails 应用程序中的什么位置?

你没有。

不希望这些内容出现在您的源代码中,因为任何有权访问您源代码的人都可以访问您的 Stripe 账户(并开始让您的客户付费......

它们应位于服务器上的环境变量中。如果这看起来不方便您,您可以查看费加罗,它可以帮助您了解敏感信息。

请注意,如果您的 yml 文件不是由您编写的(例如,如果注入了一些内容),它有一些安全风险(有人可能会在那里注入恶意代码)。您可以使用safe_yml来防止此类风险。

最后,如果你在 Heroku 上部署,你可以在那里配置变量,这些变量将可用于你的应用程序。

最新更新