2013-11-20 56 views
0

我正在運行需要通過身份驗證訪問mongo的金字塔服務器。兩臺服務器(DB和金字塔)都在同一臺機器上運行。按照pyramid/pymongo文檔,我可以使用URI等,用金字塔對MongoDB進行身份驗證的最佳方式

uri = "mongodb://user:[email protected]/the_database" 

和身份驗證。然而,這似乎是非常不安全的,因爲任何人以某種方式訪問​​金字塔代碼,然後看到與服務器用戶關聯的純密碼(即使是散列)。

緩解此問題的最佳方法是什麼?

我正在考慮提示啓動服務器的用戶爲Mongo的密碼。這是一個好主意嗎?有沒有人在金字塔中做過這樣的事情?

或者我應該將密碼存儲在只有金字塔服務器有讀權限的服務器中的安全位置嗎?

什麼是首選方式?如果我想從另一臺計算機訪問mongo服務器,該怎麼辦?在那種情況下哪種方法更好?

你們是怎麼配置它的?謝謝一堆。

+0

在Heroku上也使用了一個常用模式,它使用一個環境變量(import os; uri = os.environ('MONGODSN'))。運行金字塔的用戶當然應該是安全的。 – dbra

+0

對不起,我不知道它做了什麼。你能解釋/指點我嗎?謝謝:) – xcorat

+1

os.environ以Python的形式暴露客人的操作系統環境變量(http://en.wikipedia.org/wiki/Environment_variable)。所以你的腳本可能只是假設有人把你的訪問字符串和你的環境變量放在一起。 – dbra

回答

0

如果您在多用戶服務器上運行任何軟件,解決此問題的常用方法是確保服務器軟件在單獨的用戶帳戶上運行,將URI存儲在INI文件中,並確保INI文件只能由該用戶帳戶讀取。這確保只有服務器軟件用戶帳戶(和任何管理員帳戶)才能看到URI字符串。

相關問題