![安全地存储 Web 应用程序的凭据](https://linux22.com/image/587174/%E5%AE%89%E5%85%A8%E5%9C%B0%E5%AD%98%E5%82%A8%20Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%87%AD%E6%8D%AE.png)
我们正在使用 wsgi 和 apache2 在 python 中运行 Web 应用程序,并且必须提交渗透测试。如果攻击者以 apache 用户身份获得 shell 访问权限,测试人员将探索造成损害的可能性。
目前,损害潜力巨大,因为我们将数据库、S3 服务等的凭证都存储在 Apache 用户可读的文本文件中。这似乎是设置此类应用程序时的默认建议,但有没有更安全的方法呢?
我正在考虑使用 apache(以 root 身份)将带有 setenv 的环境变量传递给 wsgi 应用程序,但这实际上更安全吗?对此有什么建议吗?
谢谢!
答案1
使 apache 用户成为无 shell 用户:
例子:
chsh -s /sbin/nologin apache
答案2
mod_wsgi
能够以另一个用户的身份运行,因此请实现它并适当地设置文件系统权限。
如果 apache 以 root 身份运行,则也使其放弃权限并在另一个无权访问 wsgi 文件的帐户下运行。
我想知道您是否必须评估因mod_wsgi
遭到炮击而造成的损害:)
编辑:当心,chsh
'ing apache 用户nologin
将不是如果 Apache 进程受到漏洞攻击,则阻止 shell 访问。我会调查selinux
这是否是一个重大问题。