Санация паролей в стековых трассах и ошибках - PullRequest
0 голосов
/ 23 января 2020

В настоящее время мы сталкиваемся с интересной проблемой, связанной с очисткой журналов ошибок, печатаемых в журналах нашего сервера. Мы настроили правильную глобальную обработку ошибок и имеем собственные сообщения об ошибках, которые отправляются обратно как ответы от наших сервлетов OSGi java.

Мы используем докеризованные контейнеры в качестве серверных экземпляров, которые автоматически масштабируются, поэтому мы думаем о настройке агрегатора журналов и хранении наших исключений в БД в облаке, чтобы мы также могли отслеживать показатели наших исключений и Укажите, как мы могли бы улучшить наш процесс разработки, чтобы уменьшить количество ошибок определенного типа и т. д. c.

Я провел небольшое исследование о том, как это сделать, и я нашел это . ОВ ASP Шпаргалка шпаргалка. В нем упоминается, что пароли никогда не должны регистрироваться среди нескольких других вещей. Это подводит нас к моему вопросу:

Как мне go о правильной очистке моих журналов без использования какой-либо сложной обработки текста или вручную прикрывая все потенциальные случаи?

Пример трассировки стека:

pkg.exceptions.CustomException: some registration error 
ERROR: duplicate key value violates unique constraint "x_username_org_id_key"
  Detail: Key (username, org_id)=(SOME EMAIL, 1) already exists. 
  Query: with A as (some query) insert into someTable (..values...) Parameters: [X, X, X, X, X, SOME_EMAIL, THE_PASSWORD]
  at somepkg.etc

Это довольно распространенная ошибка в системах регистрации, которая возникает из-за конфликтов имен пользователей. Конечно, есть способы избежать этого конкретного случая c, гарантируя, что имя пользователя не будет взято до того, как вставка не будет предпринята, и обрабатывая этот случай отдельно, но это только один случай среди многих других.

Посмотрев вокруг, чтобы найти решение, кажется, нет очевидного способа решения проблемы, и мне интересно, все ли просто внедрили свою собственную версию средства очистки журналов? Мы могли бы просто очистить трассировку стека, если присутствуют некоторые проблемные строки, но это не лучшее решение. Есть предложения?

1 Ответ

0 голосов
/ 23 января 2020

Если вы храните и передаете хэши паролей, вам не нужно очищать логи для паролей. В тех случаях, когда пароль должен временно сохраняться в коде, используйте char[] с, а не String с. Это более безопасный подход в целом и считается наилучшей практикой. Все стандартные библиотеки API используют символьные массивы для паролей.

...