そのような例外をログに記録する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
少し遅れますが、ESAPIライブラリを使用したくない場合や、例外ハンドラクラスのみで問題が発生する場合に役立ちます。
Apache commonsライブラリを使用する
import org.Apache.commons.lang3.exception.ExceptionUtils;
LOG.error(ExceptionUtils.getStackTrace(ex));