Prevenção de injeção de código no OWASP Top 10 2021
Gabarito: letra D. Apenas a afirmativa III está correta, pois a validação de entrada positiva (whitelist) do lado do servidor é uma recomendação da OWASP, embora não seja uma defesa completa. As afirmativas I e II contêm erros conceituais: em I, a sugestão de "migrar para OGNL" é equivocada (OGNL é uma biblioteca de expressão frequentemente associada a vulnerabilidades, não uma API segura); em II, a cláusula UNIQUE não tem relação com prevenção de injeção SQL.
Afirmativa | Conteúdo | Correção | Justificativa |
|---|
I | Usar APIs seguras que evitam o interpretador de comandos, fornecendo interface parametrizada ou migrando para OGNL | ❌ Incorreta | OWASP recomenda consultas parametrizadas (prepared statements) ou procedimentos armazenados; OGNL é uma biblioteca de expressão associada a vulnerabilidades, não uma API segura. |
II | Usar a cláusula UNIQUE em consultas SQL para evitar divulgação em massa de registros em caso de injeção SQL | ❌ Incorreta | UNIQUE é uma restrição de integridade (valores únicos), não impede extração de dados; recomenda-se LIMIT ou paginação. |
III | Usar validação de entrada positiva (whitelist) do lado do servidor, reconhecendo que não é defesa completa | ✅ Correta | Prática alinhada ao princípio de defesa em profundidade da OWASP, como uma camada de segurança. |
Afirmativa I — ❌ Incorreta
Afirma que a opção preferida é usar APIs seguras que evitam o interpretador de comandos, citando OGNL como alternativa. A OWASP recomenda o uso de consultas parametrizadas (prepared statements) ou procedimentos armazenados como principal defesa contra injeção. OGNL (Object Graph Navigation Library) é uma biblioteca de expressão Java usada em frameworks como Struts, e sua utilização pode introduzir vulnerabilidades de injeção OGNL, não sendo uma medida segura. Portanto, a afirmativa troca o conceito e sugere uma prática inadequada.
Afirmativa II — ❌ Incorreta
Recomenda o uso da cláusula UNIQUE em consultas SQL para evitar a divulgação em massa de registros em caso de injeção SQL. A cláusula UNIQUE é uma restrição de integridade que garante que valores em uma coluna ou conjunto de colunas sejam únicos; não impede a extração de dados via injeção. Para limitar a quantidade de dados retornados, recomenda-se o uso de cláusulas como LIMIT ou a implementação de paginação no lado da aplicação.
Afirmativa III — ✅ Correta
Recomenda validação de entrada positiva (whitelist) do lado do servidor, reconhecendo que não é uma defesa completa, pois muitos aplicativos precisam aceitar caracteres especiais. Essa é uma prática alinhada ao princípio de defesa em profundidade da OWASP, que sugere validação de entrada como uma camada de segurança, mas não a única.
Gabarito: letra D — III, apenas.