2011-03-01 17 views
7

Tek bir yönetici şifresi ve iki API kimlik doğrulama anahtarı kullanan Heroku üzerinde çalıştığım küçük bir Sinatra uygulamasına sahibim., sinatra + heroku uygulamasında yönetici şifresini nerede saklayacak?

Bu şeyleri saklamak için en iyi yer neresidir? Onları ortam değişkenlerine koyarım ve

? Ya da bunları içeren bir yapılandırma dosyası kullanıyorum ve ben sadece config dosyasını kaydetmiyorum?

cevap

12

Ben

development: 
    twitter_api_key: stringstringstring 
    chunky: bacon 
production: 
    twitter_api_key: gnirtsgnirtsgnirts 
    foo: bar 

sonra verileri işlemek için set Sinatra'nın yerleşik kullanmak şöyle API anahtarları ve bir yapılandırma YAML içinde bu tür bir şey sopa.

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 

Ve sonra ayarlarından nesne onlara erişebilirsiniz. Yine de, yapılandırma dosyasını neden yapamayacağından emin değilim. . . Burada büyük bir güvenlik riski yoktur, çünkü sadece açıkça tanımladığınız yollara web üzerinden erişilebilir. Bir veritabanına koymak istemiyorsanız, yönetici parolası aynı şekilde depolanabilir sanırım, ama en azından bir salt ile şifreleyeceğim.

Sadece kendi kimliğinizi tanımlarken Sinatra'nın Configuration settings ürününe basmamaya dikkat edin.

DÜZENLEME:

Sana yapılandırma dosyasını işlemek için tercih ediyorum neden fark ettim düşünüyorum. Açık kaynaklı bir projede çalışıyorsanız, config dosyasını açık kaynak repo'unuza vermek istemezsiniz, ancak çalışabilmesi için dosyayı Heroku'ya yüklemeniz gerekir. Bu durumda, ya da:

  • İki ayrı yerel depoyu kullanın: açık kaynak projesi için bir tane, diğeri de heroku projesi için. Sadece açık kaynak projesini Heroku projesinde bir üst akış deposu olarak ayarlayın, ardından değişiklikleri getirebilirsiniz.
  • Her iki API anahtarını ve şifreli/tuzlanmış parolayı bir veritabanına koyun; MongoHQ, MongoDB kullanarak basit nosql depolaması için bir addon olarak Heroku kullanıcılarına ücretsiz bir katman sunar.
İlgili konular