2

我使用以下 php 代码连接到 mysql 数据库。

$hostname = "hostname.com";
$database = "dbtest";
$username = "admin";
$password = "pass123";
$connect = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database);

此代码放置在名为 connect.php 的连接文件中,该文件包含在所有需要访问数据库的 php 脚本中。

如果黑客获得了 connect.php (http://www.domainname.com/connect.php) 的 url,是否有可能破解我的数据库。如何确保php连接代码对黑客没有帮助?或者哪种是连接数据库的最佳安全方式?

4

5 回答 5

8

您永远不应该在网站的文档根目录中包含带有代码的 PHP 文件。文档根目录中唯一的东西应该是一个引导文件并通过它路由所有请求。如果您将该文件放在站点的文档根目录中,并且由于某种原因网络服务器不解析该文件,它将按原样显示。

请不要将mysql_*函数用于新代码。它们不再被维护并且社区已经开始了弃用过程。看到红框了吗?相反,您应该了解准备好的语句并使用PDOMySQLi。如果你不能决定,这篇文章将有助于选择。如果你想学习,这里有一个很好的 PDO 教程

并且始终使用加密连接 (SSL)。

有关路由示例调度模式,请参阅此内容。基本上应该发生的是:所有请求都由index.php文档根目录下的文件处理。index.php引导文件根目录之外的所有内容(即调用(包括))另一个文件。该文件将检查请求的 URL 并找出属于当前 URL 的文件并执行它。

于 2012-07-27T11:44:47.363 回答
1
  1. 不要使用mysql_*函数。
  2. 将文件放在 Web 服务器的文档根目录下的其他位置。
  3. 将 Web 服务器配置为仅允许来自 IP 地址列表的连接。
  4. 考虑始终使用安全连接 (SSL) 并将数据库配置为仅使用 SSL。
于 2012-07-27T11:47:09.957 回答
1

通常,这对于您的配置数据应该是安全的,如果黑客只有文件的 URL,并且您的网络服务器配置正确,因此原始源代码不会被泄露。

如果将这样的配置文件放在 Web 根目录之外,则可以提高安全性。

于 2012-07-27T11:45:13.180 回答
0

它是安全的。您还可以将文件存储在 DocumentRoot 之外。

于 2012-07-27T11:49:01.140 回答
0

如果有人访问此页面,则不会发生任何事情。

虽然mysql_*它本身是不安全的。

于 2012-07-27T11:43:59.263 回答