Ver um Único Post
Antigo 23-02-2009, 10:35 PM   #2 (permalink)
_Dudu_1533
Amigo SE
 
Avatar de _Dudu_1533
 
Registrado em: Oct 2008
Posts: 170
Agradeceu: 32
Agradecido 1,411 Vezes em 95 Posts
Achei Ruim:
Acharam ruim Vezes em Posts

Inventório de _Dudu_1533

Padrã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: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
$string = "O Dudu é 'Bonito";
$sql = mysql_query("SELECT * FROM usuario WHERE descricao = '".$string."'") or die(mysql_error());
O Código acima retornará erro, pois possui uma aspa jogada na string ' (aspas simples), onde, ela será a limitadora, e sobrará uma, gerando erro. Como sabemos, tudo que abre, fecha. ^^

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 ^^

_Dudu_1533 está offline   Responder com Citação
Os Seguintes 3 Usuários disseram Obrigado(a) para _Dudu_1533 por gostarem deste post :
fetish (25-02-2009), John-X (24-02-2009), macabriNn (24-02-2009)