Banco de dadosSql
- (FCC 2017)
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:
A) Como o código injetado está sintaticamente incorreto, não será executado pelo servidor de banco de dados.
B) Mesmo que o código SQL injetado esteja sintaticamente correto, a violação será detectada programaticamente.
C) É responsabilidade do servidor de banco de dados validar todas as entradas de usuário e verificar o código que executa comandos SQL.
D) Quando essa instrução for executada, o Banco de Dados selecionará primeiro todos os registros em EleicoesTable onde City é Curitiba e, em seguida, descartará EleicoesTable.
E) Este é um exemplo de como uma aplicação web pode dar liberdade ao usuário de atualizar dados em uma base de dados, mas somente os programadores, que conhecem os nomes e campos das tabelas, conseguem fazer isso.
Próximo:
EXERCÍCIOS - Exercício 72
Vamos para o Anterior: Exercício 70
Tente Este: Exercício 289
Primeiro: Exercício 1
VOLTAR ao índice: Banco de dados