SQL Injection - Para Iniciantes
Este material é para aqueles que estão iniciando no PHP agora.
Com certeza já devem ter ouvido falar nesse termo, “SQL Injection”, que é uma maneira de enganar o sistema ou site inserindo SQL nos campos de login, senha, busca e outros.
A pouco tempo atrás quando estava buscando vídeos na internet, encontrei um site que precisava de cadastro para poder ver o site, e com preguiça de cadastrar, joguei um dos comandos mais básicos que é:
‘ OR ” = ” OR 1 = 1 OR ” = ‘
Esse comando deixa a validação de sistemas não seguros “LOUCOS”, permitindo o acesso sem precisar nem de um usuário e muito menos de uma senha. Mas aconselho, não façam isso em casa!
Bom esse foi um exemplo que fiz para o professor da Unerj, Manfred Heill Jr. com objetivo de apresentar a insegurança nos Sistemas de Informação.
Para entender melhor, faça o download do exemplo e faça alguns testes:
Esse exemplo tem como finalidade apenas mostrar furos nos SI, visando melhores aplicações para WEB.
Andrey Pedro Lefkum
February 2nd, 2007 at 6:12 am
Olá… interessante…
cara, eu sou super iniciante hehehe…
Então, nesse seu sisteminha, tinha lá um form “efetuar login com segurança”
o que ele faz isso que eu não intendi e tal…
se eu deixar ele ativado ou não ele loga, não intendi a finalidade dele…
Abraços
February 2nd, 2007 at 6:47 am
Thiago,
Esse código acima, foi feito para mostrar uma falha de segurança que muitos programadores acabam esquecendo, então se você chegar a caixa “efetuar login com segurança” ele remove essa falha de segurança. Claro que não teria esse botão em um sistema, foi mais para mostrar mesmo, a falta de segurança nos sistemas.
Att.,
Andrey
May 30th, 2007 at 6:50 pm
O seu código aparentemente remove strings com o conteúdo como “INSERT”, “DROP”, etc.
Desculpa mas essa solução não é muito adequada, impossibilita um usuário ter a senha “delete”, ou “insert” hahahaha.
Você pode simplesmente “escapar” as aspas
May 31st, 2007 at 5:25 am
Hilquias!
hehhe com certeza… não ajuda muito! Tenho outros conceitos de segurança em PHP, até vou publica-los logo aqui no blog… Valeu pelo POST e pela crítica que está correta por sinal! =D
June 7th, 2007 at 11:13 am
Explica mais a repeito desse Sistema,pois o meu eu quero saber serve para finalidade, ou seja, para eu entrar no banco de dados das lojas nos quais tenho débito e deletar meus dados inclusive aquilo que estou devendo entendeu? Mi ajuda Cara, me mande por e-mail como proceder e SQL INJECTION será muito útil pra mim ou não. Dá umas dicas, Valeu!
June 8th, 2007 at 6:56 am
Meu amigo, não era essa a intenção do POST! Na verdade o objetivo era ter mais qualidade nos softwares WEB. Mas vamos lá… Digamos que se você conseguisse apagar seus registros no banco, não ficaria mais devendo, mas com certeza a loja tem backup e não aceita comandos SQL INJECTION… Com Certeza! E usando essa técnica não conseguiria realizar tal ação, chutaria no máximo apagar uma tabela… e se conseguir, ai vai da segurança do software!
Até mais!
June 18th, 2007 at 6:30 pm
Muito legal esse código de segurança. Eu já tinha visto um código parecido, mas, como sou iniciante, não sabia como usá-lo. Agora já aprendi. Valew.
Eu ví também que se a gente fizer a validação dos campos do form (usando preg_match, por exemplo) e barrar os caracteres que são usados para fazer “códigos maliciosos” também torna o sistema seguro. Então eu pergunto: é aconselhável fazer as duas coisas? O sistema fica mais seguro se fizermos as duas coisas?
Muito obrigado e parabéns.
Pienkovski
October 8th, 2007 at 7:24 am
Vez ou outra, uso isso para verificar qualidade do banco de dados, mesmo que essa falha seja algo de iniciante. Vejo muitos bancos de dados na internet com essa falha. Agora nem tanto com tanta popularização.
Uso banco de dados SQL e procuro sempre alguma dica na net sobre falhas, mesmo as básicas.
E fiquei bastante interessado também no seu comentário ao “Hilquias” sobre PHP. Ficarei antenado para mais informações.
Curti teu blog!!!
Att.,
Vinícius