CONTEXT
我有一个网络应用程序,我全局捕获我的异常,将它们记录到我的应用程序(/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
有时可能包含密码等合理内容。
问题
是否有最先进的方法来处理日志痕迹中内容的敏感性?
此外,关于绝对路径在我们的日志中可见这一事实的安全性如何?
答案 0 :(得分:1)
是否有最先进的方法来处理日志记录中内容的敏感性?
此外,关于绝对路径在我们的日志中可见这一事实的安全性又如何呢?
您在这里可以做的最好的事情是用公共密钥加密日志,而相应的秘密密钥只有您的运营团队和/或开发人员才能知道。
也就是说,我建议使用sealing API来加密日志信息。
由于您询问了最新技术,因此我在这里特别推荐sodium_crypto_box_seal()
/ sodium_crypto_box_seal_open()
。 (PHP 7.2 +)