mysql密码使用PHP连接mysql


mysql passwords Connecting to MySQL with PHP

在使用PHP连接MySQL的教程中,您可以看到类似于下面的内容。

$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'myuser','mypassword');

我在本地主机上有一个以这种方式工作的连接,但为了使其生效,你对密码做了什么?你只是把它作为纯文本保存在php文件中吗?或者有更安全的方法来处理这个问题吗?

如果查看源代码,没有人能看到您的连接字符串,只能通过查看原始代码才能看到。我也会把它放在一个单独的文件里,并把文件放在你的页面上。如果您需要更改密码,这也会有所帮助,因为您不必编辑使用连接的每个页面,只需要编辑一个文件。

或者,您可以在包含文件中设置一个连接字符串,并将其放置在文档根目录之外。这会阻止人们使用浏览器访问此文件,或者阻止他们攻击您的FTP。这将有助于您的纯文本密码的安全性,但如果有人可以访问您的本地目录,则仍然可以访问。要做到这一点,您可能需要配置一个PHP配置变量open_basedir,它允许您的脚本与根之外的文件进行对话。这一切都取决于您是否有权访问根目录后面的文件夹,当然,是否可以更改该配置变量。

除此之外,没有什么可以做的。

包括文件示例:

创建一个名为conn.php的文件,并将您的连接存储在其中。

$dbConn = mysql_connect($host, $user, $pass);
mysql_select_db("dbName", $dbConn);

在需要连接的页面上,包括conn.php文件,如下所示:

<?php
include("conn.php");
if (!dbConn) {
    die('Sorry, our database did not load. Please try again later.');
    exit();
}
$result = mysql_query("...");
?>

最终用户将永远无法看到PHP脚本中的文本。他们只看到代码输出的内容。你可以把这样的密码放进去,只要你从来没有做过这样的事情:

$mySecretPassIs='TheBoogeyManCometh';
echo $mySecretPassIs;

话虽如此,通常更容易将您的连接详细信息放在脚本中,根据需要从各个页面中包括它,然后就可以离开了。这样做的好处是,如果您更改密码或类似内容,您只需在一个地方进行更改,并且您可以将这些包含的文件保存在一个安全的地方。

真的没有办法。只需将这一行放在mysql_connect.php文件中并include()中,这样它就不会出现在源页面上。

这样,即使有人在查看您的源代码,密码也不会立即可用。

确保您的数据库权限只允许该用户对数据库具有特定权限,这样即使密码被泄露,他们也只能修改该数据库中的内容。