显示数据库错误是否明智?

时间:2018-01-12 14:24:37

标签: php

我希望保护数据库连接文件 - 报告像我显示的数据库错误是明智的。可能是攻击者可以通过读入db错误找出一种方法? - 有人可以举例说明如何安全地创建数据库连接文件? 以下是我连接文件的代码:

<?php
//Error reporting
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

/* Database connection settings */
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'customer_accounts';
$conn= $mysqli = new mysqli($host,$user,$pass,$db) or die($mysqli->error);
?>

1 个答案:

答案 0 :(得分:1)

来自OWASP

  

错误处理错误会给网站带来各种安全问题。最常见的问题是向用户(黑客)显示详细的内部错误消息(如堆栈跟踪,数据库转储和错误代码)。这些消息揭示了永远不应透露的实现细节。这些细节可以为黑客提供有关网站潜在缺陷的重要线索,这些消息也会对正常用户造成干扰......这些错误必须根据经过深思熟虑的方案处理,该方案将向用户提供有意义的错误消息,诊断信息对于网站维护者而言,攻击者没有有用的信息。

$mysqli = new mysqli($host,$user,$pass,$db)
if ($mysqli->connect_error) {
    // Diagnostic information to the site maintainers
    error_log($mysqli->connect_error);
    // A meaningful error message to the user
    // No useful information to an attacker
    echo "Server error";
}