当前位置: 首页 > 面试题库 >

比将mysql密码以纯文本格式存储在配置文件中更好的方法?

赫连黎昕
2023-03-14
问题内容

令我感到困扰的是,许多PHP程序要求用户将mysql密码以纯文本(字符串或常量)存储在应用程序根目录下的配置文件中。

这些年来,有没有更好的方法呢?

到目前为止,我提出了两个最小的安全性增强措施:

  1. 使用.htaccess中的规则通过网络使文件不可读(以防php失败或存在读取php源代码的安全漏洞)

  2. 在建立(未设置)数据库连接之后销毁内存中的密码(以防止由于安全漏洞,注入等导致的字符串转储)

但是,当然,这些解决方案都无法解决原始问题。

感谢您提出任何其他建议!


问题答案:

由于您的代码将需要密码,因此没有完美的安全性。但是,您可能很难恢复。

我将一些哈希值作为环境变量放入我的Web配置中,例如 MYSQL_PASS_HASH

然后我执行类似的操作md5(getenv('MYSQL_PASS_HASH').'gibberish$qwefsdf'),然后输入密码。unsetenv如果您偏执,当然应该在那之后。

您的密码实际上不会存储在某个地方,只有当有人同时拥有您的Web配置 您的数据库包含时,才能恢复您的密码。

这发生在webroot之外的文件中(请不要放任您所有的信任.htaccess)。



 类似资料:
  • 问题内容: 根据问题,将密码存储在php页面上是否安全,例如 如果用户看不到它,那是安全的,对吗? 编辑:有人实际上建议使用哈希,但是,数据库服务器连接密码会出现问题,不是吗? 问题答案: 简短的答案是“否”,并且取决于情况。 这是几乎从来没有一个好主意,以纯文本格式存储密码,尤其是在网络访问的位置,如果 没有 其他原因,而不是一个简单的服务器配置不当或回波在错误的地方可以将其暴露给世界。 如果必

  • 问题内容: 我在Rails,django(和一点点php)上开发了一些应用程序,在其中一些应用程序中我开始做的一件事是将数据库和其他密码作为环境变量而不是纯文本存储在某些配置文件中(或在settings.py中(对于Django应用)。 在与我的一位合作者讨论此问题时,他建议这是一种不良做法-也许这并不像最初看起来那样安全。 所以,我想知道-这是安全的做法吗?将密码以纯文本格式存储在这些文件中是否

  • 问题内容: 我需要能够使用Jenkins作业构建我的apk的发行版。 我知道我可以通过以下两种方式之一来做到这一点。要么让用户在cmd提示符下输入密码,要么将我的密码详细信息存储在一个不会提交给git的纯文本文件中,并且位于我的本地计算机上。 但是,在jenkins上运行构建作业时,这些都不起作用。1)我无法获得用户输入,因为它可能在深夜运行(即使用户在他们的机器上,我什至都不知道如何从cmd线获

  • 配置文件使用的是 JSON 格式。 JSON 中使用的数据结构和变量名对应着 Burp UI 中显示选项。生成配置文件的最简单方法是在 Burp UI 中创建所需的配置,然后保存为配置文件。您还可以手动编辑现有的配置文件,其内容是很容易就可以看懂的。 部分配置文件可以在需要时使用。您可以通过每个子工具选项卡的配置面板上的”选项(Options)”按钮来保存该区域的配置,或者通过从完整配置的文件中删

  • 问题内容: 我从log4j开始已经有一段时间了。非常酷的日志记录框架。我完成了其他类型的日志记录,例如控制台和文件日志记录。因此,尝试使用mysql的数据库适配器进行数据库日志记录。因此,我创建了名为log4j.properties的以下属性文件,其内容为- 并按以下方式在测试类中使用了它- 但我收到以下错误- 有什么帮助吗…? 问题答案: 如果您使用的是mysql。创建一个文件log4j.pro