php - mysql 密码 用 PHP 连接到 MySQL

标签 php mysql

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

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

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

最佳答案

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

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

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

包含文件示例:

创建一个名为 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 - mysql 密码 用 PHP 连接到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697928/

相关文章:

mysql - 将不明确的相同值加入 select 和 on

php - MySQL EAV 查询返回所有条目

php - ReCaptcha 阻止了我在本地主机中的 Wordpress 登录访问

javascript - Symfony 2 中的 ArrayCollection(表单集合)索引冲突

mysql - 实体关系图冗余 : store, 产品、订单、类别

sql - 用于设置默认日期的 MySQL 语法

php - 在使用 "take"和 "skip"之前获取 Laravel Eloquent 行数

使用 MySQL 驱动程序的 PHP PDO 不起作用 - 可能是我的代码?

php - 在 PHP 中的特殊字符处剪切字符串

php - 使用 mysql_insert_id() 将 .php 的 id 传递给另一个 .php