在python websi中存储postgres密码的“正确”方法

2024-04-19 19:30:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个web应用程序(在Linux系统上的Apache服务器上),它需要连接到Postgres数据库。因此,它需要数据库服务器的有效密码。在Python文件中硬编码密码似乎不太令人满意。在

我确实想知道使用.pgpass文件,但它必须属于www数据用户,对吗?默认情况下,没有/home/www数据目录,我希望在该目录中存储.pgpass文件。我可以创建这样一个目录并将.pgpass文件存储在那里吗?如果没有,那么让Python脚本连接到数据库的“正确”方法是什么?在


Tags: 文件数据服务器目录web数据库应用程序密码
2条回答

无论您使用什么方法,以www-data身份运行的其他应用程序都可以读取您的密码并在您登录数据库时登录。使用peer身份验证不会帮助你,它仍然信任在www-data下运行的所有应用程序。在

如果希望应用程序能够将其数据与其他数据库隔离开来,则需要将其作为单独的用户ID运行。主要方法有:

  • 使用apachesuexec模块作为单独的用户运行脚本
  • 使用fast cgi(fcgi)或scgi以不同的用户身份运行cgi;或
  • 让应用程序运行自己的最小HTTP服务器,并为其提供Apache反向代理

其中,到目前为止,最好的选择通常是使用scgi/fcgi。它允许您以不同的unix用户身份轻松运行应用程序,但避免了反向代理的复杂性和开销。在

将应用程序及其配置文件安装在不同于静态文件目录的自己的目录中,并且只能由应用程序用户读取。在

设置另一个用户来运行应用程序并使用WSGIDaemonProcess指令。在

所有这些以及更多内容都在mod_wsgi site,在Quick Configuration GuideConfiguration Guidelines和{a5}中都有清楚的描述

相关问题 更多 >