leitura 3 questionario
Departamento de Informática e Estatística – INE/CTC
Prof. Carina Friedrich Dorneles dorneles@inf.ufsc.br Leitura Complementar III
Nome: _______________________________________ Data de entrega: 02/11/2014
Instruções:
1.
2.
3.
4.
5.
Ler o arquivo “SQL Injection - leitura 3.pdf”.
Responder as questões abaixo.
Salvar o arquivo de respostas e postar no Moodle até o dia 02/11/2014.
Todas as respostas devem ser descritas de forma pessoal, ou seja, respostas copiadas do texto não serão consideradas corretas.
Não esqueça : a atividade é individual, leituras fora do prazo não serão contabilizadas na nota.
Questões:
1. O que é “SQL Injection”?.
É uma brecha de segurança que utiliza falhas de sistemas que interagem com banco de dados SQL, geralmente através de um form do código html onde o atacante insere instruções SQL dentro da consulta, por exemplo um form de login sem tratamento.
2. Como é possível injetar, maldosamente, comandos SQL que prejudiquem um Banco de Dados ?
O comando mais básico de SQL Injection é parecido com este:
' or 1=1-Em um form que ira receber esta variável na forma em que foi escrita.
Portanto, o código SQL que seria executado ficaria assim:
SELECT * FROM users WHERE username = ' or 1=1-O resultado ira nos dar acesso a um usuário, levando em conta que retornara verdadeiro, porque 1=1.
E o -- serve para dizer ao SQL que ele irá ignorar qualquer outro comando SQL que foi colocado no final, portanto isso ira garantir que nenhum outro código SQL feito na programação interfira.
Algumas outras sintaxes comuns de SQL Injection são:
') or ('1'='1
"or "1"="1
' or '1'='1
Or 1=1-" or 1=1-' or
1=1--
Universidade Federal de Santa Catarina – UFSC
Departamento de Informática e Estatística – INE/CTC
Prof. Carina Friedrich Dorneles dorneles@inf.ufsc.br 3. Explique brevemente as soluções, para strings, apontadas pelo autor .
Depende do SGBD utilizado, mas os mais comuns são escapar caracteres através de uma função com