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
可能就足够安全了?。