TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

SQL Injection

Por:   •  16/6/2015  •  Trabalho acadêmico  •  586 Palavras (3 Páginas)  •  258 Visualizações

Página 1 de 3

Introdução 3

Funcionamento do SQL Injection 3

Prevenção de SQL Injection 4

Conclusão 5

Referencias 5

Introdução

Hoje em dia o número de informações armazenadas em bancos de dados cresce cada vez mais, e esse crescimento traz aplicações que interagem diretamente com os SGBD’s. Com um grande número de pessoas utilizando essas aplicações, é necessário que a aplicação possua um nível de segurança que impeça ataques e evite disponibilizar informações que sejam sigilosas, no entanto, ainda existem diversas aplicações com falhas de segurança que permitem a um usuário mal intencionado obter informações não necessárias, afetar a estrutura do banco de dados ou até mesmo ter acesso a todas as informações do banco. O SQL Injection é uma técnica utilizada para inserir comandos SQL a partir da entrada de dados da aplicação.

Funcionamento do SQL Injection

O SQL Injection manipula os comandos SQL para que possam trazer informações e dar acesso ao banco de dados, como já falado anteriormente. Para explanar melhor o funcionamento do SQL Injection, utilizaremos exemplos de códigos da linguagem Transact SQL em uma aplicação hipotética que pede um login e senha.

Em uma página de login, os dados de entrada seriam “Usuário” e “Senha” e a aplicação executaria os possíveis comandos SQL:

select count(*) from users

where ds_user = '@usuario' and ds_senha = '@senha'

select ds_user, ds_senha from users

where ds_user = '@usuario' and ds_senha = '@senha'

Considerando que as variáveis @usuario e @senha sejam os dados imputados pelo usuário na aplicação, no exemplo da primeira consulta, se existisse o usuário com a senha informada o retorno da query seria 1 e caso não fosse localizado o resultado seria 0, e na segunda consulta o resultado exibiria o usuário e a senha do usuário.

Em um ataque de SQL Injection, o usuário poderia deixar o campo “Usuário” vazio e colocar o seguinte comando no lugar do campo “Senha”: ' or 1 = 1 --'

Adicionando esse comando na variável senha as consultas ficariam dessa forma:

select count(*) from users

where ds_user = '' and ds_senha = '' or 1 = 1 --'

select ds_user, ds_senha from users

where ds_user = '' and ds_senha = '' or 1 = 1 --'

No primeiro caso o resultado é diferente de 0 e no segundo caso são exibidos todos os usuários. Esse tipo de comando poderia dar acesso não autorizado a qualquer pessoa.

Outra forma de comando que poderia ser utilizando

...

Baixar como (para membros premium)  txt (3.9 Kb)   pdf (46.9 Kb)   docx (12.5 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com