КОНТЕКСТ
У меня есть веб-приложение, и я перехватываю свое исключение глобально, чтобы записать его в файл внутри моего приложения (/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 иногда может содержать разумный контент, например пароли.
ВОПРОС
Есть ли современный способ справиться с чувствительностью содержимого в наших трассировках журнала?
Кроме того, как насчет безопасности в отношении того факта, что в наших журналах видны абсолютные пути?
@ bxN5 Я обязательно проверю этот пакет OWASP, знаете ли вы, есть ли официальный эквивалент этого java-проекта, поддерживаемый OWASP?






Is there a state-of-the-art way to handle the sensibility of the content in our log traces?
Also, what about the security regarding the fact that absolute paths are visible in our logs?
Лучшее, что вы можете сделать здесь, - это зашифровать журналы с помощью открытого ключа, для которого соответствующий секретный ключ известен только вашей операционной группе и / или разработчикам.
То есть я рекомендую использовать герметизация API для шифрования информации журнала.
Поскольку вы спрашивали о современном состоянии, я бы особо порекомендовал здесь sodium_crypto_box_seal() / sodium_crypto_box_seal_open(). (PHP 7.2+)
Вы лично пользуетесь этим механизмом? Можно ли выполнить этап дешифрования в моем браузере (используя, возможно, расширение в моем браузере), поскольку мне также понадобятся мои коллеги, не являющиеся разработчиками, чтобы они могли их расшифровать, или вы рекомендуете создать небольшое веб-приложение для решения этой проблемы?
Целью API-интерфейса запечатывания является то, что расшифровывать могут только ваши разработчики, а не произвольные браузеры. При этом да, я использую этот API в своих проектах.