Segundo o relatório OWASP Top10:2021, os ataques do tipo in...
I. Para evitar injeções, é necessário manter os dados separados dos comandos e das consultas. A opção preferencial é usar APIs seguras, que evitam o uso do interpretador de comandos por completo, fornecendo uma interface parametrizada ou migração para ferramentas de mapeamento objeto-relacional (ORMs).
II. Recomenda-se a validação positiva de entrada no servidor. Isso por si só não é uma defesa completa, pois muitos aplicativos exigem caracteres especiais, como áreas de texto ou APIs para aplicativos móveis.
III. Para quaisquer consultas SQL estáticas ou dinâmica não se recomenda a utilização de caracteres de escape junto o interpretador de comandos devido às questões de compatibilidade entre sistemas heterogêneos recomenda-se apenas os caracteres literais.
Está correto o que se afirma em
Comentários
Veja os comentários dos nossos alunos
Análise do contexto da Questão: A questão aborda a segurança em aplicações web, especificamente sobre a prevenção de ataques de injeção, conforme o relatório OWASP Top10:2021. O foco é avaliar o conhecimento sobre práticas recomendadas para evitar esses ataques, como o uso de APIs seguras, validação de entrada e o tratamento de consultas SQL.
Item I: O item I está correto, pois uma das principais recomendações para evitar injeções é manter os dados separados dos comandos e consultas. O uso de APIs seguras e ORMs é uma prática recomendada para evitar a execução de comandos maliciosos. Esta prática é amplamente reconhecida em segurança da informação, conforme documentado no OWASP.
Item II: O item II está correto, pois a validação positiva de entrada no servidor é uma prática recomendada para aumentar a segurança. No entanto, é importante notar que essa prática, por si só, não é suficiente para proteger completamente contra injeções, especialmente em aplicações que requerem caracteres especiais.
Item III: O item III está incorreto, pois recomenda não utilizar caracteres de escape, o que é uma prática comum para evitar injeções em consultas SQL. O uso de caracteres de escape é uma técnica importante para garantir que dados não sejam interpretados como comandos.
Segundo a própria documentação
I) A melhor maneira de prevenir injeções é manter os dados separados dos comandos e consultas:
A opção preferencial é usar uma API segura, que evite o uso do interpretador por completo, forneça uma interface parametrizada ou migre para ferramentas de mapeamento objeto-relacional (ORMs)
II) Utilize validação positiva de entrada no servidor. Isso não é uma defesa completa, pois muitos aplicativos exigem caracteres especiais, como áreas de texto ou APIs para aplicativos móveis.
III) Para quaisquer consultas dinâmicas residuais, utilize a sintaxe de escape específica para o interpretador, escapando os caracteres especiais.
Escape: É colocar um caractere especial (como uma barra \) antes da aspa digitada pelo hacker
(ex: transformando ' em \'). Isso avisa ao banco de dados por exemplo que :
"Ei, essa aspa é só texto, não é para fechar o comando SQL".
ou seja . DEVE, SIM, usar o escape específico (Escaping) daquele banco de dados.
Ou seja, apenas I e II corretas!
fonte: https://owasp.org/Top10/2025/A05_2025-Injection/ ( usei a de 2025, porém da para responder ) + tec
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo