安全和 .ini 文件
Security and .ini file
将连接到数据库所需的数据存储在 .ini 文件中是否安全?
我构建了这样的东西
<?php
include_once($_SERVER['DOCUMENT_ROOT']."proto/class/Database.php");
function connect()
{
$config = parse_ini_file($_SERVER['DOCUMENT_ROOT']."proto/admin/config.ini");
$host = $config['host'];
$username = $config['username'];
$password = $config['password'];
$database = $config['dbname'];
$db = new Database($host,$username,$password,$database);
return $db;
}
?>
我想知道在函数中使用重要变量是否是继续进行的好方法。
如果您将信息保存在 ini 文件或 php 文件中,我想这是个人的事情。使它安全的是您的文件不应保存在 public 网络路径中。
因此,请确保您 read/include 的文件位于文档根目录之外。
我会问为什么?为什么不将其设为 PHP 文件?
<?php
return array(
"host" => "...",
"username" = "...",
//...
);
然后当你需要的时候,调用$config = require "config.php";
这比 ini 文件更好,因为它已被解析(你会得到语法错误的错误而不是忽略错误)并且因为解析是可缓存的(操作码缓存)。
此外,即使它位于 webroot 中(或者服务器配置错误允许直接访问该文件),它也不会受到直接 Web 访问。
将连接到数据库所需的数据存储在 .ini 文件中是否安全?
我构建了这样的东西
<?php
include_once($_SERVER['DOCUMENT_ROOT']."proto/class/Database.php");
function connect()
{
$config = parse_ini_file($_SERVER['DOCUMENT_ROOT']."proto/admin/config.ini");
$host = $config['host'];
$username = $config['username'];
$password = $config['password'];
$database = $config['dbname'];
$db = new Database($host,$username,$password,$database);
return $db;
}
?>
我想知道在函数中使用重要变量是否是继续进行的好方法。
如果您将信息保存在 ini 文件或 php 文件中,我想这是个人的事情。使它安全的是您的文件不应保存在 public 网络路径中。 因此,请确保您 read/include 的文件位于文档根目录之外。
我会问为什么?为什么不将其设为 PHP 文件?
<?php
return array(
"host" => "...",
"username" = "...",
//...
);
然后当你需要的时候,调用$config = require "config.php";
这比 ini 文件更好,因为它已被解析(你会得到语法错误的错误而不是忽略错误)并且因为解析是可缓存的(操作码缓存)。
此外,即使它位于 webroot 中(或者服务器配置错误允许直接访问该文件),它也不会受到直接 Web 访问。