Php数据库连接安全检查

时间:2012-01-21 18:47:37

标签: php mysql

好吧,我正在使用以下php代码创建数据库连接

<?php 
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'evantechbd');

$db = mysql_connect(DB_HOST, DB_USER); 
if (!$db)
{
die('Could not connect to Server: ' . mysql_error());
}
if (!mysql_select_db("evantechbd",$db))
{
die('Could not connect to DataBase : ' . mysql_error());
} 
?>

真的安全吗?

2 个答案:

答案 0 :(得分:2)

最大的安全问题是您的root数据库用户确实应该有密码。

答案 1 :(得分:1)

防范什么?

如果你希望它能够抵御“粗糙模块”,那就不是了。所有定义的值都可以在包含文件中的任何位置访问(您应该使用config并取消设置它取消初始化)。

$config = parse_ini_file( 'configs/config.php');
mysqli_connect( isset( $config['host']) ? $config['host'] : 'localhost',
    isset( $config['user']) ? $config['user'] : 'root', ...);
// Select DB
unset( $config);
// Prohibit your modules from opening any file

反对webuser?再一次没有。您正在向最终用户显示错误。如果因任何原因连接失败,您告诉任何人您与用户localhost的{​​{1}}连接(您应该使用抛出异常,触发错误并通知用户数据库错误,发送邮件到你自己并记录错误。)

使用没有密码的root是一个非常大的安全问题,但我假设这只是示例数据。