Cómo reparar Veracode CWE 117 (Neutralización de salida incorrecta para registros)
Hay una primavera global@ExceptionHandler(Exception.class)
método que registra una excepción como esa:
@ExceptionHandler(Exception.class)
void handleException(Exception ex) {
logger.error("Simple error message", ex);
...
El escaneo de Veracode dice que este registro tieneImproper Output Neutralization for Logs
y sugiera usar el registrador ESAPI. ¿Hay alguna forma de solucionar esta vulnerabilidad sin cambiar el registrador a ESAPI? Este es el único lugar en el código donde me enfrenté a este problema y trato de descubrir cómo solucionarlo con cambios mínimos. ¿Quizás ESAPI tiene algunos métodos que no he notado?
PD El registrador actual es Log4j sobre slf4j
UPD: Al final utilicé el registrador ESAPI. Pensé que no usaría mi servicio de registro predeterminado, pero estaba equivocado y simplemente usé mi interfaz de registrador slf4j con la configuración adecuada.
private static final Logger logger = ESAPI.getLogger(MyClass.class);
...
logger.error(null, "Simple error message", ex);
ESAPI tiene extensión de log4j logger y logger factory. Se puede configurar qué usar en ESAPI.properties. Por ejemplo:
ESAPI.Logger=org.owasp.esapi.reference.Log4JLogFactory