web-dev-qa-db-ja.com

Veracode CWE 117(ログの不適切な出力無効化)を修正する方法

そのような例外をログに記録するSpringグローバル@ExceptionHandler(Exception.class)メソッドがあります。

@ExceptionHandler(Exception.class)
void handleException(Exception ex) {
    logger.error("Simple error message", ex);
...

Veracodeスキャンによると、このログにはImproper Output Neutralization for LogsとESAPIロガーの使用を提案します。ロガーをESAPIに変更せずにこの脆弱性を修正する方法はありますか?これは私がこの問題に直面したコード内の唯一の場所であり、最小限の変更でそれを修正する方法を理解しようとします。 ESAPIには気づかなかったいくつかのメソッドがあるのでしょうか?

追伸現在のロガーはslf4jよりもLog4jです。

PD:最後にESAPIロガーを使用しました。デフォルトのロギングサービスを使用しないと思いましたが、間違っていて、適切な構成でslf4jロガーインターフェイスを使用しただけでした。

private static final Logger logger = ESAPI.getLogger(MyClass.class);
...
logger.error(null, "Simple error message", ex);

ESAPIには、log4jロガーおよびロガーファクトリの拡張機能があります。 ESAPI.propertiesで使用するものを構成できます。例えば:

ESAPI.Logger=org.owasp.esapi.reference.Log4JLogFactory
9
Vitaliy Borisok

少し遅れますが、ESAPIライブラリを使用したくない場合や、例外ハンドラクラスのみで問題が発生する場合に役立ちます。

Apache commonsライブラリを使用する

import org.Apache.commons.lang3.exception.ExceptionUtils;
LOG.error(ExceptionUtils.getStackTrace(ex));
0
Arpit Pandey