我对这一行有疑问:
$db_conn = mysql_connect($db_host, $username, $password) or trigger_error('Query failed: ' . mysql_error($db), E_USER_ERROR);
我使用此代码连接到DB。来自文档E_USER_ERROR说中断了脚本的执行,但我想知道的是,这会带来安全风险,显示一些用户不应该阅读的错误/代码信息。
感谢
答案 0 :(得分:1)
简而言之:是的。切勿向任何外部用户公开内部错误消息。原因是,你抛出的信息越多,攻击者就越容易找到你的应用程序,服务器的弱点......另一方面,普通用户通常对任何内部都不感兴趣,因此只是隐藏它们并不是缺点。但是,您应该记录它们。
答案 1 :(得分:1)
永远不要向用户报告内部错误。
您应该在使用sintax error_reporting(E_ALL);
创作时启用错误报告,并在使用error_reporting(0);
发布您的网站/应用时将其停用
希望你能找到这个有用的东西: - )
答案 2 :(得分:0)
我想知道的是,这会带来安全风险,显示一些用户不应该阅读的错误/代码信息。
如果您做对了,请关闭生产网站上的错误报告。
这就是为什么使用trigger_error()
比使用die()
要好得多{{1}} - 后者将始终显示错误消息,而前者可以关闭。