2014-02-19 130 views
3

我在開發環境中工作。我可以在哪裏放置Stripe的可發佈密鑰?

我下/配置/初始化它的內容是stripe.rb文件:

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

Stripe.api_key = Rails.configuration.stripe[:secret_key] 

我試圖把他們那裏(在ENV [「關鍵在這裏」]),但沒有按條紋」不認識他們並返回一個錯誤。

爲了使其工作,我啓動我的Rails服務器一樣,之前通過他們:

PUBLISHABLE_KEY=pk_test_XXXXXXXXXXXXX SECRET_KEY=sk_test_XXXXXXXXXXXX rails s 

我在哪裏,我的Rails應用程序將這些值? (我將在產在即部署)

感謝

回答

6

我在哪裏,我的Rails應用程序將這些值?

你不知道。

您不希望這些代碼位於您的源代碼中,因爲任何有權訪問您的源代碼的人都可以訪問您的Stripe帳戶(並開始讓您的客戶支付...)。

它們應該位於服務器上的環境變量中。如果這看起來不方便,你可以看看figaro這是爲了幫助你瞭解敏感信息。

請注意,如果您的yml文件不是由您編寫的(例如,如果注入了一些內容),則存在一定的安全風險(有人可能會在其中注入惡意代碼)。您可以使用safe_yml來防止這種風險。最後,如果你在Heroku上部署,你可以在configure variables那裏提供給你的應用程序。

+1

感謝您的見解Martin。我確實使用figaro。我認爲使用figaro後,我可以將這些變量放在源代碼中。但是,那我把它們放在哪裏呢?我有一個application.yml,我不保存在Github倉庫中,我也放置了郵件服務器證書。這是我的Stripe變量的一個合適的方法嗎? –

+2

是的,這是主意。我認爲費加羅敏感數據的第一個例子是條紋鍵。如果你已經使用它並有一個application.yml,只需在那裏添加你的Stripe鍵。費加羅魔術會將它們注入到ENV中,因此您可以像使用OS環境變量設置一樣使用它們。 – Martin

相關問題