如何在从PHP读取.ini文件时使其安全


How To Make A .ini File Secure When Reading To It From PHP

我正在创建一个使用php和mysql的网站。我把我所有的mysql访问数据都保存在一个名为"config.ini"的ini文件中。这个文件需要安全,这样恶意用户就无法访问mysql访问数据。当php试图访问它时,问题就出现了,因为不是根用户的用户"www data"拒绝了请求。如果我允许通过这个命令"www数据"。

sudo chown -R root:www-data config.ini
sudo chmod -R g+s config.ini

任何用户都可以通过键入网站地址和/config.ini来查看它,因为apache通过同一用户访问它,而不是SECURE。

PHP代码

$conf = parse_ini_file('config.ini');
$conn = mysqli_connect($conf["host"], $conf["user"], $conf["password"], $conf["database"]);

欢迎提出任何建议,并提前表示感谢。

完整答案

1) 将config.ini放在webroot外部的目录下
2) 使用此命令创建一个包含"www数据"的组。

sudo chown root:www-data config.ini

3) 使用此命令授予它读取权限。

sudo chmod 640 config.ini

4) 在php中正常访问,但使用../以直接指向新位置。

如果您担心恶意访问,这当然是一件值得关注的好事,请确保您的.ini文件不在web服务器配置为服务的任何目录中。也就是说,绝对要确保这是在你的网站的网站根之外。

其次,您通常可以将web服务器配置为拒绝提供.ini文件。您还需要确保像目录索引这样的东西被关闭,这样人们就不会四处闲逛。