是最安全的地方存储我将在mysql_connect中使用的值也是什么最安全的方法来调用这些变量会更好地使用require,include或其他东西?
谢谢:)
答案 0 :(得分:7)
存储它的最佳位置IMO位于一个PHP文件中(无论您使用require
还是include
来获取它并不重要)在Web根目录之外,即无法在浏览器中直接访问
<?php
$db_server = "xyz";
$db_user = "def";
$db_password = "abc";
?>
如果网络根目录外无法访问
@Yacoby在他的回答中写下了这一点。他从此删除了它,但绝对值得一提。
有些愚蠢的托管服务提供商不允许在Web根目录之外访问。在这种情况下,您将配置文件放在网站的目录中,并使用包含.htaccess
的{{1}}文件对其进行保护。这适用于大多数托管包装。确保您测试它,在尝试访问该文件时应该得到Deny from All
。
答案 1 :(得分:1)
这就是我通常做的事情:
$databases = array( "read" => array("host" => "127.0.0.1", "user" => "read", "pword"=> "secret", "dbase"=> "projectName"));
class Database extends PDO{ function __construct($database){ global $databases; $db = $databases[$database]; parent::__construct("mysql:dbname=".$db['dbase'].";host=".$db['host'], $db['user'], $db['pword']); } }
现在,您可以将数组键作为数据库类构造函数的参数传递给其中一个数据库凭据,然后它将使用这些详细信息登录。这意味着您可以让多个用户访问数据库(一个用于读取,一个用于写入)。