簡體   English   中英

在python網站上存儲postgres密碼的“正確”方法

[英]“Correct” way to store postgres password in python website

我正在用Python編寫一個Web應用程序(在Linux系統上的Apache服務器上),需要連接到Postgres數據庫。 因此,它需要數據庫服務器的有效密碼。 在我的Python文件中硬編碼密碼似乎相當不令人滿意。

我確實想知道使用.pgpass文件,但它需要屬於www-data用戶,對嗎? 默認情況下,沒有/ home / www-data目錄,這是我希望存儲.pgpass文件的位置。 我可以創建這樣的目錄並將.pgpass文件存儲在那里嗎? 如果沒有,那么啟用Python腳本連接數據庫的“正確”方法是什么?

無論您使用何種方法,以www-data運行的其他應用程序都可以讀取您的密碼並在您登錄數據庫時登錄。 使用peer auth不會幫助你,它仍然會信任在www-data下運行的所有應用程序。

如果您希望應用程序能夠將其數據與其他數據庫隔離,則需要將其作為單獨的用戶ID運行。 這方面的主要方法是:

  • 使用apache suexec模塊以單獨的用戶身份運行腳本;
  • 使用fast-cgi(fcgi)或scgi作為不同的用戶運行cgi; 要么
  • 讓應用程序運行自己的最小HTTP服務器並為其安裝Apache反向代理

其中,目前最好的選擇通常是使用scgi / fcgi。 它允許您以不同的unix用戶輕松運行您的應用程序,但避免了反向代理的復雜性和開銷。

將應用程序及其配置文件安裝在與靜態文件目錄不同的自己的目錄中,並且只能由應用程序用戶讀取。

設置另一個用戶來運行應用程序並使用WSGIDaemonProcess指令。

mod_wsgi站點快速配置指南配置指南配置指令中清楚地描述了所有這些以及更多內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM