trigger_error('数据库查询失败:'。mysql_error(),E_USER_ERROR); - >安全问题?

时间:2011-10-31 11:09:12

标签: php security

我对这一行有疑问:

$db_conn = mysql_connect($db_host, $username, $password) or trigger_error('Query failed: ' . mysql_error($db), E_USER_ERROR);

我使用此代码连接到DB。来自文档E_USER_ERROR说中断了脚本的执行,但我想知道的是,这会带来安全风险,显示一些用户不应该阅读的错误/代码信息。

感谢

3 个答案:

答案 0 :(得分:1)

简而言之:是的。切勿向任何外部用户公开内部错误消息。原因是,你抛出的信息越多,攻击者就越容易找到你的应用程序,服务器的弱点......另一方面,普通用户通常对任何内部都不感兴趣,因此只是隐藏它们并不是缺点。但是,您应该记录它们。

答案 1 :(得分:1)

永远不要向用户报告内部错误。 您应该在使用sintax error_reporting(E_ALL);创作时启用错误报告,并在使用error_reporting(0);发布您的网站/应用时将其停用

希望你能找到这个有用的东西: - )

答案 2 :(得分:0)

  

我想知道的是,这会带来安全风险,显示一些用户不应该阅读的错误/代码信息。

如果您做对了,请关闭生产网站上的错误报告。

这就是为什么使用trigger_error()比使用die()要好得多{{1}} - 后者将始终显示错误消息,而前者可以关闭。

相关问题