php - 记录 PHP 异常跟踪的安全方式(可能包括合理的凭据)
问题描述
语境
我有一个 Web 应用程序,我在全局范围内捕获了我的异常,以将它们记录到我的应用程序 ( /app/log/app.log
) 中的一个文件中。公用文件夹无法在外部浏览,因为它被挂载以提供给客户端 ( /public/index.php
)。
我还使用了 的修改版本Exception::getTraceAsString()
,它让我拥有完整的字符串,而不是 PHP 截断此跟踪中的字符串(代码真的很简单,我不会把类放在这里,因为它与我提出的问题无关) .
这是我的app.log
文件的示例:
2018-06-10 14:33:12.7016 (+02:00) [ERRO] Error of type PDOException catched
2018-06-10 14:33:12.7020 (+02:00) [DBUG] Error catched on line 22 of file C:\xampp\htdocs\my-app\app\bootstrap\database.php
2018-06-10 14:33:12.7026 (+02:00) [DBUG] #0 [internal function]: PDO->__construct('mysql:host=localhost;dbname=test;port=3306;adapter=;prefix=', 'root', '', Array)
2018-06-10 14:33:12.7028 (+02:00) [DBUG] #1 [internal function]: Phalcon\Db\Adapter\Pdo->connect(Array)
2018-06-10 14:33:12.7031 (+02:00) [DBUG] #2 C:\xampp\htdocs\my-app\app\bootstrap\database.php(22): Phalcon\Db\Adapter\Pdo->__construct(Array)
2018-06-10 14:33:12.7034 (+02:00) [DBUG] #3 C:\xampp\htdocs\my-app\public\index.php(7): include('C:\xampp\htdocs\my-app\app\bootstrap\database.php')
知道我想在我的应用程序之外处理这些信息,让我们说 SaaS 服务,用于跨各种日志目标存储和搜索(SaaS 系统的员工可能会看到这些目标)。
问题
如您所见,我的app.log
罐头有时包含密码等敏感内容。
问题
是否有最先进的方法来处理我们日志跟踪中内容的敏感性?
此外,关于绝对路径在我们的日志中可见这一事实的安全性如何?
解决方案
是否有最先进的方法来处理我们日志跟踪中内容的敏感性?
此外,关于绝对路径在我们的日志中可见这一事实的安全性如何?
您可以在这里做的最好的事情是使用公钥加密日志,只有您的运营团队和/或开发人员知道相应的密钥。
也就是说,我推荐使用密封API对日志信息进行加密。
既然你问到最先进的技术,我会特别推荐sodium_crypto_box_seal()
/sodium_crypto_box_seal_open()
这里。(PHP 7.2+)
推荐阅读
- javascript - 如何解决javascript重定向问题?
- node.js - 我想使用 Node js 将邮递员文件转换为 openAPI 3.0
- python - 如何通过在python中添加2个RDD的对应元素来创建RDD
- python - 通过引用修改嵌套字典元素,从列表生成
- php - 满足条件后PHP无法回显文本
- javascript - 使用 Jquery 的 PHPMailer 联系表
- winapi - 调用 Wow64GetThreadContext 返回错误“当文件已存在时,无法创建文件”。
- angular - 如何使用角度 9 的鼠标在画布上绘制空矩形
- django - 如何在模型管理器中按字段名称过滤(NameError)
- python - 期待来自 Firebase 的 JSON 但得到一个列表