【发布时间】:2020-11-22 01:01:35
【问题描述】:
我很难想出要求 MariaDB/PHP 网络应用程序密码的好处,因为密码将始终以明文形式存储在某处。
无论它是在 mysqli_connect() 调用中硬编码,还是从 ENV 文件或环境变量或其他位置提供给 mysqli_connect(),拥有密码似乎没有任何安全优势,因为如果网络服务器可以读取它,那么任何可以在网络树中植入代码的人都可以。
似乎最好将帐户设置为允许从 localhost 进行无密码登录,然后将 MariaDB 帐户限制为服务器的 IP 地址。
有没有人想出更安全的方法?
有什么想法吗?
【问题讨论】:
-
你本地主机上的其他应用程序现在可以在没有密码的情况下与你的数据库交互吗?如果将密码存储在 ENV 或具有正确配置权限的文件中,那会不会更困难?
-
我不明白这个逻辑。完全没有。如何“设置帐户以允许无密码登录”任何都比拥有密码更好。看起来只是抽象的沉思。如果您喜欢,“好处”在于使用标准的通用机制,而无需设计花哨的方案。
-
无密码可能意味着 unix socket auth 插件要求 unix 用户匹配 mysql/mariadb,它将身份验证替换为 unix 用户的身份验证,而不是已知 IP 上的已知字符串。所以不是抽象的,非常具体的和发明的,在所有情况下都没有必要更好或更坏,而是不同。确实需要考虑场景的风险/收益,但没有解决方案特别健壮和容错。
-
@lne : 这是一个没有人类用户和无关应用程序的专用主机。
-
@YourCommonSense:唯一“更好”的部分是不必存储、调用或维护密码。 “没有密码”不是“花哨的计划”,实际上恰恰相反。不存在的数据不需要维护。