每当我print_r
在我的Codeigniter站点中抛出异常时,整个CI'超级对象'就会显示在跟踪中。我不会太在意,因为我通常不会打印出Exception供用户查看,但我关注的是敏感信息是否在追踪中。例如,我的数据库用户名和密码,会话ID和加密密钥,以及整个日历类或整个分页类等其他琐碎的事情。除了这些安全问题之外,例外的长度只会使排除故障变得困难/烦恼,并找到我真正关心的信息。
我不太了解异常,知道这是一个错误还是一个功能,所以我希望有人可以对此有所了解。如果我在这里没有运气,我可能会将其作为CI的github上的问题提交。
感谢您的帮助。
答案 0 :(得分:0)
您可能需要考虑使用print_r()
输出到服务器的错误日志而不是浏览器。您可以使用error_log()
函数执行此操作,如下所示:
error_log(print_r($your_exception_here, true));
true
上的第二个print_r()
参数使其返回一个字符串,而不是自动直接输出到浏览器。
这显然意味着您必须检查错误日志而不是浏览器中的快速查看,但额外的步骤可能是值得的,以确保安全性和/或用户体验。