在Exception跟踪中显示的整个CI超级对象

时间:2014-01-15 07:41:44

标签: php codeigniter exception

希望有人可以帮忙解决这个问题。

每当我print_r在我的Codeigniter站点中抛出异常时,整个CI'超级对象'就会显示在跟踪中。我不会太在意,因为我通常不会打印出Exception供用户查看,但我关注的是敏感信息是否在追踪中。例如,我的数据库用户名和密码,会话ID和加密密钥,以及整个日历类或整个分页类等其他琐碎的事情。除了这些安全问题之外,例外的长度只会使排除故障变得困难/烦恼,并找到我真正关心的信息。

我不太了解异常,知道这是一个错误还是一个功能,所以我希望有人可以对此有所了解。如果我在这里没有运气,我可能会将其作为CI的github上的问题提交。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可能需要考虑使用print_r()输出到服务器的错误日志而不是浏览器。您可以使用error_log()函数执行此操作,如下所示:

error_log(print_r($your_exception_here, true));

true上的第二个print_r()参数使其返回一个字符串,而不是自动直接输出到浏览器。

这显然意味着您必须检查错误日志而不是浏览器中的快速查看,但额外的步骤可能是值得的,以确保安全性和/或用户体验。