【问题标题】:What is the most accepted method for hiding password for 'connect.php' file?隐藏“connect.php”文件密码的最常用方法是什么?
【发布时间】:2011-06-08 16:14:10
【问题描述】:

随着我的服务器变得越来越大,并且越来越多的用户可以访问它,我不希望他们看到 MySQL 用于连接 PHP 的密码,该密码存储在我的“connect.php”中文件和每个页面都需要。但是,它只是与其他 php 文件位于同一目录中。

我考虑过使用第二个类似“connect.php”的文件,该文件只能访问一个表,该文件存储连接到 MySQL 的加密密码,但是我会遇到隐藏密钥的问题。

更改权限也不起作用,如果你chmod o-r 或类似的东西,显然没有人能够访问网络应用程序。

是否有一种公认的方法来解决这个问题,或者我应该自己解决它?问题是,如果有可接受的方法,我不希望它太复杂。

【问题讨论】:

  • 你为你的用户提供了什么样的访问权限,他们可以在第一时间看到 PHP 源代码?
  • 其他开发者可以访问 Linux 机器本身。

标签: php mysql encryption passwords password-protection


【解决方案1】:

我强烈建议将connect.php 移动到您的DOCUMENT_ROOT 上方的一个目录中,这样就无法从您的网络服务器访问它。

您的 php 文件当然可以包含带有完整或相对路径的 connect.php,例如:

require_once('../connect.php');

【讨论】:

  • 这似乎是最简单的第一步。
【解决方案2】:

所有答案都有很好的建议,但未能解决任何具有服务器访问权限的用户都可以窥探并在编辑器中打开 config.php 的事实。

将您的配置文件设置在公共网络空间之外的目录,网络服务器应该是该目录的所有者,并且它应该具有设置为 700 的权限。它包含的所有文件都应该是 644。这样除了网络服务器用户或 root 之外,没有人可以读取文件内容。

这是一种常见的方法,但由于安全性是一个非常广泛的主题,但该主题还有很多内容,但优于 90% 的设置。

【讨论】:

  • 在这种情况下,我们假设 root:root 是所有者,对吧?所以,当我按照你说的方式尝试chmodding 时,网站被限制,所以没有人可以看到它。
  • 在什么发行版上?在很多 linux 发行版上,apache 用户是 www-data,因此 www-data 将无法打开 root 的文件夹。使用topps 并检查您的apache 运行的用户,即必须拥有配置文件夹的用户。这是我所知道的用于配置文件的最严格和最有效的安全措施。
  • 暂时使用 Ubuntu,直到我们获得硬件升级。查看这些建议。
  • 在 Ubuntu 上,根据文档 The default value for User is www-data. 确保配置文件夹 在您的网络路径之外,并将该文件夹添加到 php.ini 中的 include_path。跨度>
  • 效果最好。非 sudoers 完全看不到 connect.php,这真的很棒。非常感谢。
【解决方案3】:

设置$password,连接,然后unset() $password。他们应该永远无法恢复它。 我认为无论如何都不能下载PHP文件,也没有见过。之前总是由服务器编译。

【讨论】:

  • 这只有在 - 出于某种原因 - 您允许第三方代码在同一个 PHP 实例上/在同一组脚本中运行时才有任何价值,在这种情况下可能有百万其他安全原因,您应该关注。
【解决方案4】:

用户无法获取服务器端文件的内容,除非您自愿(或错误地)向他们展示。

任何妥协都可能通过 FTP 访问来实现,在这种情况下,黑客无论如何都可以访问网络服务器上的所有文件。

【讨论】:

  • 发生了很多次(我相信它最近发生在 Flickr 或类似的一些大网站上)PHP 运行时暂时失败,导致 Apache 以明文形式发送文件,因此,用户查看密码。
【解决方案5】:

移动到www根目录后的文件夹,如www/includes。 从那里,您可以使用 htaccess 来阻止查看 /includes 下文件的权限。

连接到SQL数据库后,使用unset($username, $password),这样就不会有人回显密码的用户名了。

最后,最好有专门的主机,这样任何有权访问网络服务器的人都无法查看其他用户的文件。

【讨论】:

    【解决方案6】:

    或者,您可以完全摆脱密码并将数据库服务器配置为只接受来自本地主机的连接。不过,这仅适用于专用主机,如果您使用共享主机,则会存在安全风险。

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 2012-06-10
      • 2015-05-22
      相关资源
      最近更新 更多