2012-10-30 18 views
1

最近,我不得不制作一个后来必须上传到多个网络服务器的应用程序。这样做,我意识到,将管理员通行证和用户名存储到json文件时不需要数据库连接,因此它始终都能正常工作。另外,在json中保存配置时,我可以将我的应用程序复制到Web服务器,然后转到浏览器进行配置。JSON vs DATABASE

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

我的困境:这是正确的方式,这是节省吗,这是有效的,最重要的是你们是如何做到这一点的。

什么是存储管理员的登录名和configuiration数据

回答

1

通常的解决办法是要出的源代码将密码为一个配置文件的最好方法。然后保留管理并将该配置文件保存到系统管理员。这样开发人员不需要知道任何有关生产密码的信息,并且在源代码管理中没有密码记录。

换句话说,它是完全正常的具有包含define("DB_PASS", "topSecret");

提供访问config.php文件正确施用config.php,这种方法是安全的。

1

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

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

在生产系统的任何地方清除密码都是一个坏主意,至少使用有损散列法来扰乱它。请记住,只要您处理密码,作为设计人员和开发人员,您有责任尽全力保证安全。在决定简单的解决方案之前,请评估所有选项,以后可能会让您和客户感到尴尬。你在使用什么技术?也许我们可以帮助您找到可供您选择的选项。

请记住,没有任何东西完全隔离。例如,即使这不是一个关键系统,很多地方都会使用某种特定的密码模式,这会给潜在的黑客提供黑客入侵其他帐户的线索。如果您为多个用户管理密码,某些用户会使用相同的密码进行很多操作。

这篇文章不是作为讲座,而是要求你确保你探索可用的所有途径,以保持你的声誉和你的客户的安全。把它看作是一个挑战,或者解谜,并且很有趣。

+0

那么你看到唯一的数据女巫必须是安全的应用程序的设置。它们可以包含一些值不是所有人都想看到的值,例如db-pass,db-user,db-name,e-mail-pass等等。应用程序的后端也受密码保护。这个密码需要安全地存储,最重要的是它必须可用于php脚本。这对设置也很重要。正如我现在所知道的那样:conf.json女巫包含所有设置,admin.json女巫包含一些管理员用户及其密码。这两个文件被禁止用.htaccess查看并且密码被编码。 – botenvouwer

+0

我很抱歉,我离开了。请参阅是否可以在应用中使用无密码逃脱。例如,使用外部认证配置Oracle数据库(http://docs.oracle.com/cd/B19306_01/network.102/b14266/admnauth.htm)。这使得IT可以在系统上为您的应用程序设置一个用户,以便Oracle无需登录即可授权访问。根据您使用的其他技术,看看是否可以将它们全部设置为这种方式。另外,如果您使用的是用户组而不是显式用户,则可以轻松地将用户从具有访问权限的组中添加或删除。 – Rob