我正在开展一个项目,必须满足一些监管要求,这些要求要求至少 5 个授权用户中的 3 个启动后端 Web 服务,使用预先分配的密码处理非常敏感的信息。
目前,原型已获批准,并正在使用 Python 的wsgiref.simple_server(),我已将其编程为手动提示输入密码。现在原型已获得批准,我必须将 Web 应用程序迁移到生产环境,在那里我需要在后台运行它Apache
。mod_wsgi
我有两个问题:
现在,我使用一个精简的 Python 包装器
expect
以编程方式允许远程输入密码。如何让 Apache 在启动前提示我输入密码?这是否必须在app.wsgi
由 执行的脚本中mod_wsgi
?由于 Apache 是守护进程,因此没有 stdin,那么这将如何工作!我是否需要担心某种类型的代码重新加载?Apache 在终止并重新启动另一个工作进程之前可能具有最大请求数,但这是否也需要密码提示?
任何帮助都将不胜感激。
答案1
通过 modwsgi 作为访问提供程序进行 HTTP/Digest 身份验证应该适合您的情况。modwsgi 网站。
与 expect 和 stdin 相比,使用 HTTP 身份验证是一种更为普遍接受的身份验证方式。
至于代码重新加载,只要您不设置最大请求值,您就不必担心重新启动。使用 HTTP 身份验证,重新启动实际上并不重要。
答案2
用户可以通过触摸 .wsgi 文件来重新加载 wsgi 进程(从而更新 apache 提供的代码)。(即触摸 /path/to/file.wsgi)
您可以使用 linux 权限和 sudo 要求他们输入自己的系统密码来保护这一部分。