[Security] Санитизировать вывод исключений Redmine в CLI #55
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
В
redmine_reporter/cli.py:79при ошибке от Redmine вstderrпечатается raw exception:Если
python-redmineилиrequestsв сообщении исключения раскрывают URL с встроенным ключом (https://red.eltex.loc/issues.json?key=SECRET) или другие чувствительные данные, они попадут в логи/терминал.Пример сценария утечки
redmine-reporter.key=....{e}выводится в stderr и может быть скопировано в баг-репорт или лог CI.Рекомендации
Печатать только тип исключения и краткое сообщение без стектрейса:
(уже лучше, но всё ещё рискует содержать URL с ключом).
Предпочтительно: перехватывать известные исключения
redminelib/requestsотдельно и выводить безопасные, заранее подготовленные сообщения. Полный стектрейс выводить только при--verbose.Добавить тест, проверяющий, что при ошибке в выводе не присутствует значение
REDMINE_API_KEY.Связанные места
redmine_reporter/cli.py:79