哪里放数据库敏感信息

时间:2012-04-16 14:36:53

标签: php database connection-string

  

可能重复:
  How to secure database passwords in PHP?

最近我得到了一个网站项目,应该用PHP完成,但我没有太多的PHP经验。无论如何,它已经启动并运行,但还有很大的改进空间。我感觉不舒服的一件事是我处理数据库的方式:我将数据库连接信息放在一个单独的db.php文件中并在需要的地方包含它。但我记得很多时候看到服务器返回的PHP源文件。

所以现在我的问题是:放置数据库敏感数据的更好或最好的方法/地点是什么?

顺便说一句,当出现问题时,怎么不让PHP在网页上显示错误消息? php.ini中的某个自定义错误页面或设置?谢谢!

注意:我使用PHP的旧风味而不是面向对象的方式。但是,如果有更好的方法为未来的项目做准备,我对面向对象或MVC方式持开放态度

3 个答案:

答案 0 :(得分:8)

我不知道这是不是你要找的东西:
您可以将敏感数据放在db.php中,但不在Web根目录(public_html或www)之外。

例如,您可以拥有一个名为config的目录,它是您的Web根目录的兄弟,并将db.php文件存储在那里。

您可以像这样包含db.php文件:

require_once('../config/db.php');

我希望这会有所帮助。

答案 1 :(得分:2)

我个人会创建一个名为db.php的文件,并将其放在服务器上的public_html文件夹上面

例如

<?php
    error_reporting(0);
    $link = FALSE;
    $link = mysql_connect('hostname', 'username', 'password');
    if ( ! $link)
    {
        die("Couldn't connect to mysql server!");
    } else {
        mysql_select_db('databasename');
    }
?>

这会在连接到数据库的同时关闭错误报告,从index.php中你可以包含这样的文件:

<?php require('../db.php'); ?>

答案 2 :(得分:1)

可以将它放在db.php文件中,只需在每个文档的打开require_once()标记后使用<?php

如果basedir限制没有生效,请将db.php文件移到web / ftp root之外,这样就无法通过http / ftp访问它。确保在此文件上正确设置了权限。

由于您没有为代码使用OOP或MVC结构,因此这是最佳路径。