记录PHP异常跟踪的安全方法(可能包括合理的凭据)

记录PHP异常跟踪的安全方法(可能包括合理的凭据),php,security,logging,Php,Security,Logging,上下文 我有一个web应用程序,我全局捕获我的异常以将它们记录到我的应用程序内的文件中(/app/log/app.log)。一个公用文件夹由于被装载以提供给客户机而无法在外部浏览(/public/index.php) 我还使用了一个修改版本的Exception::getTraceAsString(),它让我拥有完整的字符串,而不是PHP在这个跟踪中截断字符串(代码非常简单,我不会把类放在这里,因为它与我问的问题无关) 下面是我的app.log文件的示例: 2018-06-10 14:33:12.

上下文

我有一个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
有时可能包含密码之类的合理内容

问题

是否有最先进的方法来处理日志跟踪中内容的敏感性

另外,关于绝对路径在日志中可见这一事实,安全性如何

是否有最先进的方法来处理日志跟踪中内容的敏感性

另外,关于绝对路径在日志中可见这一事实,安全性如何

在这里,您可以做的最好的事情是使用公钥加密日志,相应的密钥只有您的操作团队和/或开发人员知道

也就是说,我建议使用a来加密日志信息


既然您询问了最先进的技术,我特别推荐
钠加密盒密封()
/
钠加密盒密封()
。(PHP7.2+)

@bxN5我一定要检查这个OWASP包,你知道这个java项目是否有官方的OWASP维护版吗?你个人是否使用这个机制?解密步骤是否可以从我的浏览器中执行(可能使用浏览器中的扩展),因为我还需要我的非开发人员同事能够解密这些内容,或者您建议创建一个小型web应用程序来专门解决此问题?密封API的目的是只有您的开发人员可以解密,而不是任意浏览器。也就是说,是的,我在自己的项目中使用了这个API。