Como corrigir o Veracode CWE 117 (Neutralização inadequada de saída para logs)
Existe uma primavera global@ExceptionHandler(Exception.class)
método que registra uma exceção assim:
@ExceptionHandler(Exception.class)
void handleException(Exception ex) {
logger.error("Simple error message", ex);
...
A verificação Veracode diz que esse registroImproper Output Neutralization for Logs
e sugira usar o registrador ESAPI. Existe alguma maneira de corrigir essa vulnerabilidade sem alterar o logger para ESAPI? Este é o único local no código em que enfrentei esse problema e tento descobrir como corrigi-lo com o mínimo de alterações. Talvez a ESAPI tenha alguns métodos que eu não notei?
P.S. O registrador atual é Log4j sobre slf4j
UPD: No final, usei o ESAPI logger. Eu pensei que não usaria meu serviço de log padrão, mas estava errado e simplesmente usou minha interface de log do slf4j com a configuração apropriada.
private static final Logger logger = ESAPI.getLogger(MyClass.class);
...
logger.error(null, "Simple error message", ex);
A ESAPI possui extensão do log4j logger e da fábrica de loggers. Pode ser configurado o que usar em ESAPI.properties. Por exemplo:
ESAPI.Logger=org.owasp.esapi.reference.Log4JLogFactory