php - 连接到 MySQL 数据库的安全方法

标签 php mysql

我正在为一小群人 (50-60) 管理一个网站。该网站有一个简单的登录,所有用户数据都存储在 MySQL 数据库中,该网站由一家知名的网络酒店托管。

我现在连接到数据库的方式是通过一个单一的用户帐户,在数据库中指定具有读取和更改的权限,以确保每个用户都可以更改自己的密码。脚本 (mysql_conn.php) 包含在所需的页面中,如下所示:

$server = "server_name";
$username_sql = "user@servername"; // This format is specific for that webhotel
$password_sql = "A_strong_password";    // Hard coded in the file

$conn = mysql_connect($server, $username_sql, $password_sql);
$db = mysql_select_db("user_list", $conn);
mysql_query("SET NAMES Utf8");
if(!$db) {
    echo "Error message";
exit();
}

从技术上讲,它就像一个魅力,但我不确定这是最好的方法,尤其是密码。另外,我是否应该在每页末尾包含某种数据库断开连接?

最佳答案

首先,不建议对新代码使用 mysql_*,参见 PHP Introduction ot MySQL 如果可能,请考虑改用 PDO。

其次,将密码存储在 PHP 中非常安全,甚至比将其保存在 xml 或 ini 等纯文本中更安全。除非您的 Web 服务器出现故障并且无法为 PHP 页面提供服务,否则直接运行您的 PHP 脚本(或访问它通过网络浏览器)永远不会暴露密码(与 xml/ini 文件相反)。

考虑将密码存储在一些无法从网络浏览器访问的 config.php 中(即公共(public)根目录之上的某处)。

唯一可能劫持您的密码的情况是当您的网络服务器被黑客入侵时,但在这种情况下,无论您如何保存密码(除非它已加密),它都会被劫持。

如果您决定切换到 PDO,请注意,如果连接失败,PDO 将抛出 PDOException如果 php 配置为显示错误,将泄露您的密码。参见 The related bug .所以谨慎使用!

祝你好运:)

关于php - 连接到 MySQL 数据库的安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10929177/

相关文章:

php - 用户名或电子邮件存在时不返回错误

php - login.php 文件中的 MySQL 语法错误

php - bash脚本从ftp服务器获取文件并在下载后重命名文件

php - 当我添加 root 密码时,XAMPP 未将 "unsecure"更新为 "secure"

php - “PDOException”语法错误或访问冲突 : 1064 You have an error in your SQL syntax; check

MySQL:基于多列的连接

linux - PHP-FPM、Monit、ping/状态页面、Apache

mysql - SQL查询提取前几个字符

mysql - 如何从 MySQL 的连接表中正确提取受日期计算约束的记录?

mysql - 从 MySQL 切换到 MariaDB