繁体   English   中英

Php与数据库的连接:它安全吗?

[英]Php connection to database: is it secure?

我使用以下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)的网址,是否有可能破解我的数据库。 如何确保php连接代码无法帮助黑客? 或者哪种连接数据库最安全?

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

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

并始终使用ecrypted连接(SSL)。

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

通常情况下,如果黑客只有文件的URL,并且您的网络服务器配置正确,以至于未显示原始源代码,那么这对于您的配置数据应该是安全的。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM