我使用以下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连接代码无法帮助黑客?或者哪种连接数据库最安全?
答案 0 :(得分:7)
您永远不应该在网站的文档根目录中包含包含代码的PHP文件。文档根目录中唯一的东西应该是bootstrap file并通过它来路由所有请求。如果您将该文件放在站点的文档根目录中,并且由于某种原因,Web服务器不会解析该文件,它将按原样显示。
请不要将mysql_*
函数用于新代码。它们已不再维护,社区已开始deprecation process。请参阅red box?相反,您应该了解prepared statements并使用PDO或MySQLi。如果您无法决定,this article将有助于选择。如果您想学习,here is a good PDO tutorial。
始终使用ecrypted连接(SSL)。
请参阅routing examples和dispatching patterns。基本上应该发生的是:所有请求都由文档根目录下的index.php
文件处理。 index.php
引导文档根目录之外的所有内容(即调用(包括))。该文件将检查请求的URL并找出哪个文件属于当前URL并执行它。
答案 1 :(得分:1)
通常情况下,如果黑客只拥有该文件的URL,并且您的网络服务器配置正确,以便原始源代码不会泄露,那么这对于您的配置数据应该是安全的。
如果将此类配置文件放在Web根目录之外,则可以提高安全性。
答案 2 :(得分:1)
mysql_*
个功能。答案 3 :(得分:0)
如果有人访问此页面,将不会发生任何事情。
虽然mysql_*
本身是不安全的。
答案 4 :(得分:0)
这很安全。 您还可以将文件存储在DocumentRoot外部。