0

Sql Injection

criado por Allan Romanato em 08/12/2011 11:29am
Atualmente um dos maiores medos das pessoas que tem um web-site dinâmico com algum tipo de sistema de login são as tentativas de invasão ao banco de dados, dentre essas invasões a mais comum utilizada é a invasão por Injection.

O que é invasão por Injection?

Invasão por injection é quando um usuário mau intencionado insere códigos sql em uma tela de login por exemplo, tentando assim explorar alguma vulnerabilidade.

Nesse artigo irei explicar como se proteger desse ataque utilizando uma função do PHP.

A função utilizada é a mysql_real_escape_string()
A utilidade dessa função é colocar caracteres de escape para evitar que comandos Sql sejam colocados em seu web-site.

Os seguintes caracteres são afetados pela função:

\x00
\n
\r
\
'
"
\x1a

Em caso de sucesso a função retorna a string com os caracteres de escape e em caso de falha, o retorno é FALSE.

Sintaxe
mysql_real_escape_string(string,connection)

string é um parâmetro obrigatório, ele define a string que sera inserido os caracteres de escape.

connection é um parâmetro opcional, ele especifica a conexão com o MySql, se não especificado, utiliza a ultima conexão aberta.


Utilização da função

<?php

//Abertura da conexão
//Código para capturar usuário e senha podendo utilizar o array $_POST[""]

$usuario = mysql_real_escape_string($usuario);
$senha = mysql_real_escape_string($senha);

$sql = "SELECT * FROM usuarios WHERE
usuario='" . $usuario . "' AND senha='" . $senha . "'"

//Resto do seu código
?>

A melhor forma de realizar esse check é a criação de uma função especifica para isso.


Espero que tenha ajudado.

Abraços

Allan Romanato

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)