PHP错误公开数据库凭据

时间:2014-01-24 10:52:51

标签: php mysql security pdo database-connection

我一直在使用一个使用PDO连接到MySQL数据库的PHP应用程序。每当连接出现故障时,我们都会收到如下错误:

PHP PDO Error

这通常在更新服务器详细信息或向群集添加新服务器时发生,并且有时对最终用户可见。我特别担心的是,由此产生的错误暴露了用于数据库的连接细节。是否可以更改错误报告,以便我们显示错误,而不包括连接详细信息?

3 个答案:

答案 0 :(得分:1)

这是什么,你在找什么?

try {
    $rs = $db->prepare('query_here');
    $rs->execute();
    $foo = $rs->fetchAll();
} catch (PDOException $e) {
    die("Oh noes! There's an error in the query!");
}

在制作中,如果你不能访问“php.ini”文件,而不是设置error_reporting(0),如果你可以编辑“php.ini”文件而不是设置display_errors = off

答案 1 :(得分:1)

最好不要在开发过程中显示任何php错误。您可以改为记录它们。

您可以使用theese命令或手动将其写入php.ini文件。

ini_set('display_errors', '0');
ini_set('log_errors', 1);
ini_set('error_log', 'your custom log file (optional)');

每次查询数据库时都应该使用 try catch

try {
    //query the database here
} catch (PDOException $e) {
    trigger_error('your error here');
}

答案 2 :(得分:0)

您可以尝试/捕获异常并更改消息,但您不应该在生产中显示错误!你可以在你的php.ini文件中设置display_errors = off,或者添加:

error_reporting(0);
ini_set('display_errors', 0);