有没有办法隐藏所有数据库信息,例如密码,用户名等


Is there a way to hide all database info such as password, username, etc?

我正在创建几个php脚本。 我是否必须始终为同一数据库和表的每个脚本插入主机、用户名、密码等?有没有办法只用一行或其他方式进行引用? 有没有办法隐藏这些信息?

$host="XXXXXXXXX";
$username="XXXXX";
$password="XXXXX";
$db_name="XXXXXX";
$tbl_name="XXXXX";
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

虽然执行PHP文件,因此源代码在Web上不可见,但意外的错误配置可能会改变这一点。您可以将数据库配置放在 wbeserver 的文档根目录之外的单独文件中,并使用 PHP 的 require 命令将其包含在其他脚本中。

但是,根据 PHP 配置,PHP 脚本可能无法访问 docroot 之外的文件,但有一些方法可以解决此问题。本SO问题详细讨论了这些问题

如果您不想将凭据放在 php 文件中,那么您可以将它们放在 php.ini 配置文件中。

mysql.default_host = "localhost"
mysql.default_user = "user"
mysql.default_password = "pass"

然后在 PHP 源代码中:

<?php
$connect_db = mysql_connect();
$err = mysql_error();
if ($err != "")
{
        echo "Error connecting to database: $err";
        die;
}
if (!mysql_select_db("mydomain_com_test", $connect_db))
{
        echo mysql_error()."<br/>";
        die;
}
$sql = "SELECT NOW()";
$rows = mysql_query( $sql );
?>