gpt4 book ai didi

php - 在php中保护数据库密码

转载 作者:可可西里 更新时间:2023-11-01 07:03:52 26 4
gpt4 key购买 nike

我是网络开发新手。我很好奇人们是怎么做到的。

我正在编写一些使用 mysql 数据库的 php 代码。到目前为止,我已经在代码中硬编码了密码。此代码可以由所有开发人员 checkout ,因此每个人都可以访问密码。对我来说似乎非常错误。最重要的是,我能想到一些并发症。我以要点形式列出问题 -

  1. 代码中硬编码的密码错误。我不希望所有开发人员都可以访问它,因为他们都可以 checkout 代码。

  2. 如何区分生产和开发服务器/凭据?我有包含 prod 和 dev DB 凭据的相同文件。处理这个问题的最佳方法是什么?

  3. 我想防止懒惰/醉酒时间,这样开发人员就不会删除/删除表等。显然,我可以对不同的开发人员拥有不同的访问权限。那么这就是所有这一切的解决方案吗?

可能的解决方案:代码中没有密码。要求开发人员自己添加密码并确保它从未被 checkin 。

解决方案的问题:繁琐的部署过程。必须手动添加生产/QA 部署的密码,并确保每次部署前都能连接到数据库。听起来太痛苦而且容易出错。人们通常做什么?

也有同样的说明(有点链接到上述问题)

  1. 如果您的团队中有 4 名开发人员,您将如何设置开发环境?他们都使用相同的数据库吗?如果不是,您如何创建表并用测试数据填充表?您是否必须编写代码来填充测试数据?

非常感谢任何输入。

最佳答案

将密码放在一个单独的 PHP 文件中,其中包含您的所有应用设置,并将其包含在页面顶部。然后可以将此文件保留在版本控制之外,并为每个部署替换。

确保将 config.php 文件(或您选择的任何名称)保存在根目录之外,这样它就不会被意外提供给任何用户你的应用程序。此外,作为进一步的预防措施,请确保为它提供 .php 扩展名,这样如果它仍然以某种方式提供服务,它应该首先由 PHP 解析,以及任何有用的信息(希望) 已删除 - 出于这个原因,通常的做法是使用 .conf.php.inc.php 扩展名来命名它。

至于开发环境,我们使用所有开发人员共享的单一数据库。它最初是根据实时客户数据创建的,克隆到我们的数据库中,出于隐私原因对某些信息进行了编辑/替换。我们的开发构建和本地主机构建使用相同的数据库。

关于php - 在php中保护数据库密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6684423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com