Php 将数据库敏感信息放在何处

Php 将数据库敏感信息放在何处,php,database,connection-string,Php,Database,Connection String,可能重复: 最近,我得到了一个网站项目,这应该是在PHP完成,但我没有太多的PHP经验。无论如何,它已经启动并运行,但还有很大的改进空间。我感到不舒服的一件事是我处理数据库的方式:我将数据库连接信息放在一个单独的db.php文件中,并在需要的地方包含它。但我记得多次看到服务器返回的PHP源文件 所以现在我的问题是:放置数据库敏感数据的更好或最好的方法/位置是什么 顺便问一下,当出现问题时,如何不让PHP在网页上显示错误消息?php.ini中的某个自定义错误页或设置?谢谢 注意:我用的是PHP的

可能重复:

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

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

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


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

我不知道这是否是您想要的:
您可以将敏感数据放在db.php中,但放在web根目录(public_html或www)之外

例如,您可以有一个名为config的目录,它是web根目录的同级目录,并将db.php文件存储在那里

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

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

我希望这会有所帮助。

把它放在db.php文件中很好,只需在打开
后使用
require_once()
我会亲自创建一个名为db.php的文件,并将其放在服务器上的公共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'); ?>


好的重要问题+1考虑安全性。顺便说一句,在生产服务器上,应始终将设置为
off
。这样,PHP将抛出一个500错误,而不是显示实际的错误。我想PHP.ini中的display_errors=off应该可以防止此解决方案显示+1的任何错误,也不要忘记将此文件的权限更改为最低,但仍能被Web服务器读取。如果文件由Web服务器进程拥有,那么
0600
可能就足够安全了?。