Как зарегистрировать ошибку без утечки информации о безопасности или трассировки стека? - PullRequest
7 голосов
/ 10 февраля 2012

Когда я запускаю Fortify Scan в моем проекте, я вижу, что регистрирую исключения, используя

LOGGER.error(e.getMessage(),e);

, и он говорит, что это неправильный путь, потому что attckers могут получить доступ к этой информации иСистемная информация об этом и план атаки.

Каков наилучший способ сделать это (без ущерба для безопасности)?

Ответы [ 2 ]

6 голосов
/ 10 февраля 2012

Это рассуждение откровенно нелепо в большинстве случаев. Ваш объект LOGGER должен выполнять запись в локальную файловую систему, и если удаленный злоумышленник может получить доступ к вашей файловой системе, у вас способ больших проблем.

Ограничьте доступ к вашим файлам журналов соответствующим образом, а затем войдите в свою душу.

3 голосов
/ 10 февраля 2012

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

Вы должны рассматривать свои журналы как важные данные и защищать доступ к ним на уровне операционной системы, например доступ к файлам базы данных. Если злоумышленник получит доступ к базе данных, он все равно скомпрометирует систему. В лучшем случае только системный администратор должен иметь доступ к файлам журналов и предоставлять их разработчикам только при необходимости (критическая ошибка на производстве и т. Д.).

...