RA 4351 BRK - R9 SQL Injection
R9 - V01_01_5_01H

RECOMENDAÇÕES PARA CORREÇÃO
Para a correção desta vulnerabilidade, é recomendado:
• Realizar uma sanitização de todos os inputs de usuários, não permitindo que sejam processados como querys;
• Aplicar a correção do filtro de campo CPF / CNPJ em todos os locais;
• Não permitir que inputs de usuários sejam refletidos como querys ao banco de dados;
classe: br.com.autbank.r9.sb.relatorios.impl.SBRelMapeamento
``` java
private String getQuery(ITORelMapeamento toRelMapeamento) {
StringBuffer query = new StringBuffer(R9_SP_REL_MAPEAMENTO);
Object[] args = {
ADMUtils.toSQLFormatoParametro(toRelMapeamento.getDataBase()),
ADMUtils.toSQLFormatoParametro(toRelMapeamento.getCadColigada()),
ADMUtils.toSQLFormatoParametro(toRelMapeamento.getCpfCnpj()),
ADMUtils.toSQLFormatoParametro(ADMSimNao.booleanToChar(toRelMapeamento.getCadoc3040())),
ADMUtils.toSQLFormatoParametro(toRelMapeamento.getTipoRelatorio())
};
return MessageFormat.format(query.toString(), args);
}
```
classe: br.com.autbank.r9.fw.impl.ADMUtils
.de
``` java
public static String toSQLFormatoParametro(String campo){
String formatoSQL = campo;
if(formatoSQL != null){
formatoSQL = "'" + formatoSQL + "'";
}
return formatoSQL;
}
public static String toSQLFormatoParametro(String campo, boolean acrescentaPercentualFim){
String formatoSQL = campo;
if(formatoSQL != null){
if(acrescentaPercentualFim){
formatoSQL = formatoSQL + "%";
}
formatoSQL = "'" + formatoSQL + "'";
}
return formatoSQL;
}
public static String toSQLFormatoParametro(String campo, boolean acrescentaPercentualInicio, boolean acrescentaPercentualFim){
String formatoSQL = campo;
if(formatoSQL != null){
if(acrescentaPercentualInicio){
formatoSQL = "%" + formatoSQL;
}
if(acrescentaPercentualFim){
formatoSQL = formatoSQL + "%";
}
formatoSQL = "'" + formatoSQL + "'";
}
return formatoSQL;
}
```
.para
``` java
public static String toSQLFormatoParametro(String campo){
String formatoSQL = campo;
if(formatoSQL != null){
formatoSQL = "'" + formatoSQL.replaceAll("'", "''") + "'";
}
return formatoSQL;
}
public static String toSQLFormatoParametro(String campo, boolean acrescentaPercentualFim){
String formatoSQL = campo;
if(formatoSQL != null){
if(acrescentaPercentualFim){
formatoSQL = formatoSQL + "%";
}
formatoSQL = "'" + formatoSQL.replaceAll("'", "''") + "'";
}
return formatoSQL;
}
public static String toSQLFormatoParametro(String campo, boolean acrescentaPercentualInicio, boolean acrescentaPercentualFim){
String formatoSQL = campo.replaceAll("'", "''");
if(formatoSQL != null){
if(acrescentaPercentualInicio){
formatoSQL = "%" + formatoSQL;
}
if(acrescentaPercentualFim){
formatoSQL = formatoSQL + "%";
}
formatoSQL = "'" + formatoSQL.replaceAll("'", "''") + "'";
}
return formatoSQL;
}
```