![]() |
[GUIA] ~ Inject SQL ~ Aprenda a se proteger
GUIA ~ INJECT SQL ~ Realizando e Protegendo teu servidor nível: intermediário Índice~ 0- Código de ética. 1- O que é? 2- Localizando sites com proteção falha. 3- Protegendo-se 4- Créditos ------------ 0- Código de ética. O Inject SQL é um erro sério. Ao ler o guia você concorda em não utilizar para destruir sites e nem invadir servidores. Esse guia tem como objetivo explicar o que é e como funciona o Inject SQL. Não, você não é nenhum h4x0r por saber isso pois até uma criança de 8 anos consegue dar inject SQL. ------------ 1- O que é? Inject SQL é um erro detectado recentemente que permite você logar como administrador e fazer outras coisas fodásticas! Como a divulgação do erro foi propagada muito rápida poucos sites hoje em dia estão desprotegidos... 2- Localizando sites com proteção falha. Simplesmente vá no google e digite: Citação:
Agora para ver se a proteção não está boa, digite os seguintes login e senha: Citação:
Se não der nenhum erro de MySql então eles estão protegidos... Se der erro então esse site é vuneravél. Para injetar ponha ' no login e na senha tente um desses códigos: Citação:
3- Protegendo-se Abaixo colocarei alguns scripts com a proteção anti-SQL Inject, para serem inseridos no teu website. Criar conta Citação:
Citação:
O script foi construído na proteção contra o SQL Injection, e também força o usuário a apresentar um nome de usuário e senha que estão entre os 5 e os 20 caracteres de comprimento, e limita-los a apenas caracteres alfanuméricos. Scripts de Redefinição de senha são ainda mais sujeitos a SQL Inject , então aqui está um script para redefinição de senha: Alterar senha Citação:
Citação:
Veja esse exemplo de código: Citação:
Mas se por acaso adicionarmos umas linha: Citação:
O comando addslashes irá adicionar uma barra invertida "\" antes de todo ' ou " No caso, isso irá fazer com que o interpretador ignore isso criando um erro no login. 4- Créditos Near e _Dudu_1533 por suas dicas. o Changelog: Citação:
|
Bom, já que estamos falando de MySQL + PHP, vou dar meu parecer.
Hoje em dia, SQL Injection é uma questão bem discutida, mas é o tipo de assunto que o pessoal não passa soluções. É difícil você ir em algum site de Webmaster e encontrar uma solução cabível para tal problema. Temos várias formas de proteger contra SQL Injection. Lista de alguns:
Com esses 3 métodos básicos, que ao meu ver, todo site deve ter, você consegue proteger-se, com qualquer tipo de sistema que utilizar. Vale lembrar, que para uso de expressões regulares, é necessário uma leitura minuciosa sobre cada propriedade. Mas a recompensa é gratificante, pois é um ótimo recurso, e proporciona muita coisa. Mas devemos lembrar que SQL Injection não usa-se somente em formulários. Temos que nos previnir quando usamos métodos $_GET, $_COOKIE, ou todos os tipos onde o usuário tem o poder de editar a informação. Outro fator importante, é trabalhar com cada informação ligada às consultas. Como nosso amigo disse, o caractere ' (aspas simples) é muito perigoso. Por quê? Pois é um caractere que o SQL (Todos os tipos de banco que utilizam a linguagem SQL) utiliza para caracterizar um dado como string. Exemplo: Código:
$string = "O Dudu é 'Bonito";Qual a solução? Simples, "escapar" estas aspas. Como? É só adicionar barra invertida \ antes de aspas simples. A função nativa do php, addslashes(), adiciona automaticamente essa barra antes de todas as aspas simples de uma string, com isso, a aspa será considerado como um caractere, e não um limitador do SQL. Bom, a dica está aí. Boa leitura à todos. Uma dica ao autor do tutorial, é que ele passe estes conceitos. Você passou muito exemplo prático, tente colocar mais conceitos, pois existem muitos leigos no assunto. Se quiser aproveitar este meu post, fique à vontade. Qualquer dúvida, é só perguntar. Até mais ^^ |
| Horários baseados na GMT -3. Agora são 12:52 AM. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.