最近我不得不制作一个应用程序,以后必须上传到多个Web服务器。这样做我意识到,当将管理员传递和用户名存储到json文件中时,不需要数据库连接,因此它始终有效。此外,当在json中保存配置时,我可以将我的应用程序复制到Web服务器,然后只需转到浏览器进行配置。
为此使用数据库时,我必须配置此硬编码。比db连接将在connect.php或config.php中声明。上传应用程序时,我无法使用它,因为没有数据库连接。而且我无法在应用程序本身内设置数据库连接,因为即使我可以在封闭的汽车中使用汽车钥匙,也无法登录。
我的困境:这是正确的方式吗,这是拯救,这是否有效,最重要的是你们是如何做到的。
存储管理员登录和配置数据的最佳方式是什么
答案 0 :(得分:1)
通常的解决方案是将密码从源代码中移出到配置文件中。然后将管理和保护配置文件保留给系统管理员。这样开发人员就不需要了解生产密码,也没有源代码控制中的密码记录。
换句话说,让config.php
包含define("DB_PASS", "topSecret");
如果正确管理了对config.php
文件的访问权限,则此方法是安全的。
答案 1 :(得分:1)
Lynks是正确的,这是常见的,并且比在源代码管理中使用密码更好,但是如果这是您正在设计的生产系统,我强烈建议使用不同的机制进行用户身份验证。
大多数数据库允许您使用本地系统用户和组或外部LDAP来管理用户凭据。大多数应用程序服务器也会有这种机制,这不是一个新问题。某些系统允许您为受信任的用户创建安全密钥(如SSH密钥),以允许无密码登录。
在生产系统的任何地方都有明确的密码是一个不好的想法,至少使用有损散的哈希方法来加扰它。请记住,一旦您处理密码,作为设计人员和开发人员,您有责任尽最大努力确保密码安全。请在决定易于解决的问题之前评估您的所有选择,这可能会让您和您的客户在以后遇到严重的尴尬。你使用什么技术?也许我们可以帮助您找到适合您的选项。
请记住,没有任何东西完全孤立。例如,即使这不是一个关键系统,很多地方也会使用某种密码模式,这会给潜在的黑客提供黑客攻击其他帐户的线索。如果您管理多个用户的密码,一些用户会使用相同的密码进行很多操作。
这篇文章不是一个讲座,而是请求您确保探索所有可用的途径,以保证您的声誉和客户的安全。把它想象成一个挑战,或者是谜题并且乐在其中解决它。