【问题标题】:entire CI super object showing up in Exception trace异常跟踪中显示的整个 CI 超级对象
【发布时间】:2014-01-15 07:41:44
【问题描述】:

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

每当我 print_r 在我的 Codeigniter 站点中引发异常时,整个 CI“超级对象”都会显示在跟踪中。我不会太在意,因为我通常不会打印出异常供用户查看,但我担心的是敏感信息在跟踪中。例如,我的数据库用户名和密码、会话 ID 和加密密钥,以及其他琐碎的东西,如整个日历类或整个分页类。除了这些安全问题外,仅是异常的长度就会使故障排除变得困难/烦人,也很难找到我真正关心的信息。

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

感谢您的帮助。

【问题讨论】:

    标签: php codeigniter exception


    【解决方案1】:

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

    error_log(print_r($your_exception_here, true));

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

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

    【讨论】:

    • 真正关心的不是我如何输出它,而是为什么信息一开始就在异常中。
    • 我想一个异常应该包含它,以便它可以用作堆栈跟踪(各种)。如果假设它永远不会显示给用户(它显然不应该),那么提供异常发生的上下文的完整细节是有意义的。
    猜你喜欢
    • 2021-07-13
    • 2012-07-25
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 2015-07-08
    • 2014-01-24
    • 2011-10-05
    • 2010-10-16
    相关资源
    最近更新 更多