在PHP中保持MySQL凭据私有的最佳方法是什么?

时间:2012-09-19 09:42:21

标签: php mysql security mysql-connect

在php中编写Web应用程序时,防止MySQL信息被其他人(第三方)披露或发现的最有效方法是什么?该信息将包括域名和登录以及connet功能中使用的密码。

例如,一个好的过程可能是将你的mysql连接函数保存在一个单独的php文件等中。

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

  1. 将您的凭据保存在单独的.php文件文档根目录中(因此无法通过网络直接访问)
  2. 最好将其保存为.php文件,而不是.inc,这样即使它是通过网络意外访问的,也会执行而不会直接显示
  3. 建立连接后不要保留用户名和密码(即,在不再需要凭证后取消设置凭证或数组密钥);你不能不小心暴露你不再拥有的东西
  4. 不允许在凭证文件中重复包含凭据文件(例如if (defined('DB_AUTH_LOADED')) return; define('DB_AUTH_LOADED', 1);),以避免任何可能重新定义凭证变量
  5. 这可以防止您直接访问您的凭据以及您自己的代码意外泄露凭据。如果攻击者可以将PHP文件上传到您的服务器并设法实际执行它们,那么这场斗争就会大打折扣,但上述措施应该让您相当安全,不会意外地泄露您的信誉。

答案 1 :(得分:2)

我不能说这是否是最好的,但我就是这样做的;

我有一个config.php文件,它保存我的数据库连接凭据,无法直接访问。我有一个DB类,需要config.php来建立连接,我有一个扩展DB类的站点类。

这是一种非常常见的做事方式,并且被普遍接受。

答案 2 :(得分:2)

您可以做的另一件事(如果您的凭据被泄露)是为了确保您为PHP将要使用的任务设置的mysql用户被禁止制作DROP语句,如果您可以构建数据,甚至可以使用DELETE语句如此。

为该用户提供对其他数据库的最低访问级别,可能只是拥有该用户数据的数据库。

答案 3 :(得分:1)

课程,包括?有很多方法可以做到,但最终如果有人可以访问未解析的PHP文件,他们将拥有您的MySQL登录详细信息。