Veracode扫描问题及解决办法
前言
关于CWE问题,有许多都可以通过ESAPI来解决, ESAPI使用方式见链接:ESAPI配置
CWE-93: Improper Neutralization of CRLF Sequences (‘CRLF Injection’)
场景:在编写邮件发送代码中遇到此问题
解决方法: 使用ESAPI
错误示例:
msg.setSubject(subject);
正确示例:
//去除回车换行符
subject = subject.replace("\n"," ").replace("\r"," ").replace("\t"," ");
//关键句
subject = ESAPI.encoder().encodeForHTML(subject);
msg.setSubject(subject);
CWE-918: Server-Side Request Forgery (SSRF)
场景:使用restTemplate调用api
解决方法: 使用ESAPI
错误示例:
ResponseEntity responseEntity = restTemplate.exchange(new URI(uri),HttpMethod.GET,requestEntity,String.class);
正确示例:
URI verifyUri = ESAPI.validator().getRfcCompliantURI(uri);
ResponseEntity responseEntity = restTemplate.exchange(verifyUri ,HttpMethod.GET,requestEntity,String.class);