我在settings.py中有敏感數據(數據庫密碼),我建議將我的Django項目上傳到github存儲庫,然後將它推送到Heroku的「Django入門」上Heroku的」。如果我把settings.py放在.gitignore中,那麼它可能不會被我的項目部署。我如何防止暴露settings.py,但仍然可以將它部署到我的項目中?隱藏Heroku Django部署的settings.py密碼
3
A
回答
2
可以使用環境變量(與heroku config:add SECRET=my-secret
)設置的敏感數據和檢索它們在你的設置:
SECRET = os.environ.get('SECRET', 'my-default-secret-key')
如果你不希望能夠啓動您的應用程序,而不必設置一些數據,使用此語法來代替:
SECRET = os.environ['SECRET']
這將引發異常,如果您沒有設置SECRET
環境變量。
2
您應該使用專門用於分解敏感數據的工具。我使用YamJam https://pypi.python.org/pypi/yamjam/。它允許os.environ方法的所有優點,但更簡單 - 您仍然必須設置這些環境變量,您需要將它們放置在某個腳本/ rc文件中。 YamJam消除了這些問題,並將這些配置設置存儲在項目外的配置存儲中。這使您可以對開發,分期和生產有不同的設置。
from YamJam import yamjam
secret = yamjam()['myproject']['secret']
是基本用法。和os.environ方法一樣,它不是特定於框架的,你可以在Django或任何其他應用程序/框架中使用它。我已經嘗試過所有這些,多個settings.py文件,if/then和環境爭論的脆弱邏輯。最後,我轉向yamjam,並沒有後悔。
+0
這種方法比創建環境變量要容易得多,並且讓事情更有條理,謝謝你的回答! –
相關問題
- 1. 在Octopus部署中隱藏密碼
- 2. Heroku Django選擇settings.py
- 3. Heroku上的Django settings.py + dj_database_url?
- 4. Django部署在Heroku
- 5. 用Heroku部署Django
- 6. 部署的Django到Heroku的
- 7. Clickonce應用程序部署,隱藏app.config中的密碼
- 8. 隱藏密碼
- 9. 隱藏密碼()
- 10. Heroku碼頭部署
- 11. 隱藏UITextField密碼
- 12. 加密/隱藏部分源代碼
- 13. 如果使用AppHarbor/Heroku的部署如何隱藏從GitHub SQL的用戶名和密碼?
- 14. Heroku - 隱藏關鍵元素
- 15. Django的錯誤部署到Heroku的
- 16. 隱藏模擬的密碼
- 17. 隱藏MySQL的密碼
- 18. 在Heroku的部署Django項目
- 19. 部署Django應用程序,以Heroku的
- 20. 如何在ARM模板部署中隱藏shell腳本中的密碼
- 21. 隱藏密碼字符
- 22. 隱藏密碼字段
- 23. 在textField中隱藏密碼「•••••••」
- 24. Vim語法隱藏密碼
- 25. Jetty-ssl.xml密碼隱藏
- 26. 隱藏密碼字符串
- 27. iSeries連接隱藏密碼
- 28. 在Django的settings.py
- 29. Django的procfile找不到settings.py
- 30. Django部署在heroku上不起作用
您可以使用不同的分支,請參閱http://stackoverflow.com/questions/10475273/git-have-different-gitignore-file-for-each-remote。 – bennofs
謝謝,我想到了,但聽起來很乏味。我想我想出了最好的辦法,就是使用Heroku的環境變量,如https://devcenter.heroku.com/articles/s3,然後使用os.config [「variableName」]來檢索settings.py。相當驚訝,這不是一個更可谷歌的問題,雖然...也許這將有助於 –
你不需要推到github,只是爲了混帳。它甚至可以是沒有任何遠程的本地git存儲庫。在「入門」中,他們只是建議安裝系統級的github .gitignore。 – esauro