【问题标题】:encrypting file that stores SQL passwords存储 SQL 密码的加密文件
【发布时间】:2014-12-16 16:01:45
【问题描述】:

为 apache 使用的数据库存储用户名/密码组合的最安全方法是什么?

必须有比将明文密码存储在单个文件中并将它们放在只有 root 和 apache 可以访问的文件夹中更安全的方法。

【问题讨论】:

    标签: apache security encryption


    【解决方案1】:

    好吧,让我问这个问题:你在保护谁?您想“更安全”,但尚未发现任何攻击媒介。

    1. 外部用户

      如果您想保护它们免受外部用户的侵害,您有两种选择:

      1. 将文件移到 webroot 之外。因此,攻击者无法获取该文件,因为 Apache 不会提供该文件。

      2. 在 Apache 中通过权限或拒绝保护文件。这样 Apache 就不会为它服务了。

      第一个选项更好,因为错误配置无法公开凭据。

    2. 内部用户(有权访问服务器的人)

      您无法防御它们。如果攻击者可以进入服务器,他们就可以(通常至少)获得对凭据的访问权。

      是的,您可以加密文件。但是 Apache 必须知道如何解密它,这样攻击者才能弄清楚。

      您唯一的防御措施是正确设置文件的权限。使其只能由 Apache (nobody) 读取。

    简而言之,加密凭据几乎没有任何好处,就好像您的服务器配置正确,它们不可能泄露给他们本来不会泄露给的人。

    保护您的应用程序免受其他攻击媒介(SQLi、代码注入、XSS 等)的侵害,因为它们更有可能成为攻击者进入的途径...

    【讨论】:

    • 我一直在考虑创建一个文件,将该信息存储在环境变量中,并将其添加到 httpd.conf。或者将加密文件存储在 webroot 之外,并为 apache 提供一个可用于解密它的密钥,即用户需要密钥和文件才能对其进行任何操作。但是在考虑并阅读了您的回复之后,对我来说更加明显的是,如果有人获得对用户 apache 的访问权限,那么我对此无能为力。
    猜你喜欢
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    相关资源
    最近更新 更多