在用 php 编写 Web 应用程序时,防止您的 MySQL 信息被他人(第三方)泄露或发现的最有效方法是什么?这些信息将包括在连接功能中使用的域名和登录名和密码。
例如,一个好的过程可能是将您的 mysql 连接函数保存在单独的 php 文件中,等等。
有任何想法吗?
在用 php 编写 Web 应用程序时,防止您的 MySQL 信息被他人(第三方)泄露或发现的最有效方法是什么?这些信息将包括在连接功能中使用的域名和登录名和密码。
例如,一个好的过程可能是将您的 mysql 连接函数保存在单独的 php 文件中,等等。
有任何想法吗?
.php
文件中(因此无法通过 Web 直接访问).php
文件而不是,例如,.inc
这样即使它可以通过网络意外访问,它也会被执行而不是直接显示if (defined('DB_AUTH_LOADED')) return; define('DB_AUTH_LOADED', 1);
在您的凭证文件中),以避免任何可能的重新定义您的凭证变量这应该可以保护您免于直接访问您的凭据以及您自己的代码意外泄漏凭据。如果攻击者可以将 PHP 文件上传到您的服务器并设法实际执行它们,那么这场战斗几乎是失败的,但上述措施应该可以让您相当安全,避免自己意外泄露您的信用。
我不能说这是否是最好的,但我就是这样做的;
我有一个 config.php 文件,其中包含我的数据库连接凭据,并且不能直接访问。我有一个需要 config.php 来建立连接的 DB 类,并且我有一个扩展 DB 类的站点类。
这是一种非常普遍的做事方式,并且被普遍接受。
您可以做的另一件事(如果您的凭据被泄露)是确保您为 PHP 将使用的任务设置的 mysql 用户被禁止制作 DROP 语句,甚至可能是 DELETE 语句,如果您可以这样构造数据的话。
尽可能为该用户提供对其他数据库的最低访问权限,可能只有保存该用户数据的数据库。
课程,包括?有很多方法可以做到这一点,但最终如果有人可以访问未解析的 PHP 文件,他们将拥有您的 MySQL 登录详细信息。