-
SQL Injection ocorre por falta de tratamento de entradas possibilitando a um atacante enviar dados não confiáveis para um interpretador, geralmente são encontradas em consultas SQL, LDAP, comandos do sistema operacional etc. Para tentar proteger a aplicação os interpretadores devem identificar e restringir dados não confiáveis dos comandos e consultas e evitar consultas dinâmicas.
-
O texto da questão foi retirado integralmente daqui : https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/owasptop10/OWASP_Top_10_-_2013_Brazilian_Portuguese.pdf
-
Gabarito C
O SQL Injection é o nome dado a uma falha na codificação de uma aplicação qualquer (seja web ou local) que possibilita, por meio de um input qualquer, a manipulação de uma consulta SQL. Essa manipulação é chamada Injeção, então, o termo Injeção SQL. Resumindo: o SQL Injection é uma técnica de ataque baseada na manipulação do código SQL, que é a linguagem utilizada para troca de informações entre aplicativos e bancos de dados relacionais.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
-
Letra C
Olhe abaixo a mesma questão da banca, mas por um olhar invertido:
Ano: 2017
Banca: FCC
Órgão: DPE-RS
Prova: Analista - Segurança da Informação
Nas aplicações web, as falhas de SQL Injection são introduzidas quando os desenvolvedores de software criam consultas dinâmicas a banco de dados que incluem entrada fornecida pelo usuário. Técnicas eficazes para evitar vulnerabilidades SQL Injection em aplicações web incluem o uso de
a) tokens imprevisíveis em cada requisição de usuário.
b) referência direta a objetos por usuário ou sessão.
c) buffer procedures e stack SQL statements.
d) direct statements, design patterns e frameworks.
e) prepared statements e stored procedures. (instruções preparadas e procedimentos armazenados)
Letra e.
-
LETRA C
O último período é fundamental para resolvermos a questão
Para chamadas em linguagem estruturada de consulta, isso significa utilizar variáveis de ligação em todas as instruções preparadas e procedimentos armazenados, e evitar consultas dinâmicas.
linguagem estruturada de consulta = Structured Query Language = SQL
instruções preparadas = Prepare Statement - Tratar a consulta
procedimentos armazenados = Storage Procedure - Ajudam a manter a integridade
evitar consultas dinâmicas = Usar os binds Values ou Params - Vinculam as Variáveis de Ligação a um valor
-
Ao citar a separação entre dados não confiáveis e o comando da consulta, a utilização de variáveis de ligação em instruções preparadas e procedimentos armazenados e que se evite consultas dinâmicas, o texto está descrevendo maneiras de proteção aos ataques de SQL injection.
Gabarito: E