1

最近我不得不制作一个应用程序,后来必须上传到多个网络服务器。这样做我意识到当将管理员密码和用户名存储到 json 文件中时,不需要数据库连接,因此它一直有效。此外,当在 json 中保存配置时,我可以将我的应用程序复制到 Web 服务器,然后转到浏览器进行配置。

当为此使用数据库时,我必须配置这个硬编码。数据库连接将在 connect.php 或 config.php 中声明。上传应用程序时,我无法使用它,因为没有数据库连接。而且我无法从应用程序本身设置数据库连接,因为即使可以登录,我也无法登录,这就像封闭汽车内的车钥匙一样。

我的困境:这是正确的方法吗,这是保存吗,是否有效,最重要的是你们是如何做到的。

存储管理员登录和配置数据的最佳方式是什么

4

2 回答 2

1

Lynks 是正确的,这很常见并且比在源代码管理中使用密码更好,但是如果这是您正在设计的生产系统,我强烈建议使用不同的用户身份验证机制。

大多数数据库将允许您使用本地系统用户和组,或外部 LDAP 来管理您的用户凭据。大多数应用服务器也会有这种机制,这不是一个新问题。某些系统将允许您为受信任的用户创建安全密钥(如 SSH 密钥)以允许无密码登录。

在生产系统的任何地方都清楚地显示密码是一个坏主意,至少使用有损散列方法对其进行加扰。请记住,一旦您处理密码,作为设计师和开发人员,您有责任尽最大努力确保密码安全。请先评估您的所有选项,然后再决定简单的解决方案,这可能会让您和您的客户日后感到非常尴尬。您正在使用哪些技术?也许我们可以帮助您找到可用的选项。

请记住,没有什么是完全孤立的。例如,即使这不是一个关键系统,很多地方也会使用某种密码模式,这将为潜在的黑客提供入侵其他帐户的线索。如果您管理多个用户的密码,一些用户会在很多事情上使用相同的密码。

这篇文章不是作为讲座,而是请求您确保探索所有可用的途径,以确保您的声誉和客户的安全。把它想象成一个挑战,或谜题,并享受解决它的乐趣。

于 2012-10-30T12:43:26.917 回答
1

通常的解决方案是将密码从源代码中移到配置文件中。然后将管理和保护该配置文件的工作留给您的系统管理员。这样开发人员就不需要知道任何有关生产密码的信息,并且在您的源代码管理中没有密码记录。

换句话说,config.php包含 a是完全正常的define("DB_PASS", "topSecret");

config.php如果正确管理对文件的访问,则此方法是安全的。

于 2012-10-30T11:37:15.123 回答