16.4.4 代码自身的问题
到目前为止,我们已经介绍的许多访问数据库的代码都包括了数据库名称、用户名称以及用明文表示的用户密码。如下所示:
$conn=@new mysqli("localhost","bob","secret","somedb");
尽管这很方便,但是这也是不安全的,尤其是如果破解人员能够看到我们的.php源文件,他们可以立即获得对数据库的访问,具有用户"bob"所拥有的所有权限。
最好不要将保存用户名称和密码的文件保存在Web应用的文档根目录,在脚本中再引入该文件,如下所示:
<?php
//this is dbconnect.php
$db_server='localhost';
$db_user_name='bob';
$db_password='secret';
$db_name='somedb';
?>
<?php
include('../code/dbconnect.php);
$conn=@new mysqli($db_server,$db_user_name,$db_password,
$db_name);
//etc
?>
对于其他同样敏感的数据,也需要这样访问,这样就带来了安全保护的中间层。