2
我有太多的主机PDO例外,在我的MySQL数据库:如何防止密码倾销PDO错误
exception 'PDOException' with message 'SQLSTATE[HY000] [1129] Host
'[IP ADDRESS]' is blocked because of many connection errors; unblock
with 'mysqladmin flush-hosts'' in /var/www/libs/Database.php:15
我明白了这个错误,但真正的问题是在转储数据库名称堆栈跟踪,登录名和密码进入控制台:
Stack trace:
#0 /var/www/libs/Database.php(15): PDO->__construct('mysql:host=conf...',
'[db name]', '[db password]...', Array)
由于这是一个AJAX请求时,它转储到控制台浏览器,这显然是一个问题。
我该如何避免这种情况发生?我错误地配置了PHP吗?
错误日志中没有MySQL密码真的很重要吗?如果攻击者能够访问日志,他也可以访问你的'/ var/www/libs/Database.php',并且如果他想要的话可以很容易地获得密码......在我看来,我会说只要由于日志保留在服务器上,并且不会与任何人共享(通过电子邮件或其他方式),所以没关系。 – 2014-01-08 17:38:25
更好地处理错误。 PDO抛出'PDOException'的实例,所以抓住这些并优雅地处理它们。任何原始错误消息都不应该在生产网站上输出,而应该使用不可公开访问的** error_log **文件。 –
@André这是一个AJAX请求,因此转储到浏览器控制台 – alias51