Questão nº 51

Questão de Tecnologia da Informação · FCC TRE-PR 2017 (nº 51)

FCC2017Técnico Judiciário - Área Apoio Especializado - Especialidade Programação de SistemasTecnologia da Informação
Gabarito: Dver comentário ↓

Considere a situação em que um usuário é solicitado a inserir o nome de uma cidade através de um formulário em uma aplicação web. Se ele inserir a cidade 'Curitiba', a consulta SQL criada pelo script será:

`SELECT FROM EleicoesTable WHERE City = 'Curitiba'`

No entanto, suponha que o usuário insira o seguinte:

`'Curitiba'; drop table EleicoesTable--`

Nesse caso, a seguinte consulta SQL é gerada pelo script:

`SELECT
FROM EleicoesTable WHERE City = 'Curitiba';drop table EleicoesTable--`

Considerando que o ponto-e-vírgula (;) denota o término de uma consulta e o início de outra e que o hífen duplo (--) indica que o restante da linha atual é um comentário e deve ser ignorado, é correto afirmar:

Resposta comentada

Gabarito Alternativa D

SQL Injection é uma falha de segurança onde um atacante insere comandos SQL maliciosos em campos de entrada de uma aplicação web, fazendo com que o banco de dados execute esses comandos não intencionais e potencialmente perigosos.

(A) Incorreta: O código injetado é sintaticamente correto para o banco de dados, que o interpretará como duas instruções SQL separadas: uma `SELECT` e uma `DROP TABLE`.
(B) Incorreta: A detecção programática de violações de SQL Injection não é automática; ela requer a implementação de medidas de segurança específicas na aplicação (como prepared statements ou validação de entrada), que frequentemente estão ausentes em sistemas vulneráveis.
(C) Incorreta: A responsabilidade de validar e sanitizar as entradas do usuário recai sobre a aplicação web, antes que os dados sejam enviados ao servidor de banco de dados. O servidor de banco de dados apenas executa as instruções SQL que recebe.
(D) Correta: O banco de dados processará a primeira instrução `SELECT * FROM EleicoesTable WHERE City = 'Curitiba'` até o ponto-e-vírgula. Em seguida, ele executará a segunda instrução `drop table EleicoesTable`, pois o hífen duplo (--) faz com que o restante da linha seja tratado como comentário e ignorado.
(E) Incorreta: SQL Injection é uma vulnerabilidade de segurança grave, não uma "liberdade" concedida ao usuário. Ela permite a manipulação não autorizada do banco de dados por qualquer pessoa que explore a falha, sem a necessidade de ser um programador ou conhecer previamente os nomes das tabelas. Armadilha: Esta alternativa tenta confundir o conceito de falha de segurança com uma funcionalidade intencional de "atualização de dados", além de sugerir que apenas programadores poderiam explorá-la, o que é falso.

Fonte: FCC TRE-PR 2017 Técnico Judiciário - Área Apoio Especializado - Especialidade Programação de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho