PHP SQL Injection Exemplo e Como Evitar

SQL Injection é uma técnica de injetar código SQL malicioso através de brechas que a aplicação pode oferecer. É uma falha grave que compromete completamente a segurança do site.

 

Exemplo de SQL Injection

 

Suponhamos que um hacker acessa uma página de uma loja qualquer que possua essa brecha de segurança.

Uma pesquisa desse tipo basicamente resultaria na consulta:

 

Considerando que nesta pesquisa exista a falha que nos permita injetar código SQL, o hacker então poderia simplesmente injetar qualquer código SQL:

Que resultaria na consulta:

ou seja, tabela de produtos seria destruída!

Para contornar o problema acima poderíamos utilizar expressões regulares para invalidar caracteres que podem nos causar problemas, porém abaixo estarei mostrando um recurso simples do PHP que será bastante útil para evitarmos esse tipo de ataque.

 

Como evitar SQL Injection usando PHP PDO (PHP Data Object)

 

PDO é uma interface para acessar bancos de dados no PHP.

Utilizaremos um recurso simples que nos ajudará a contornar o problema citado acima.

O truque do PDO para evitar SQL Injection é a função bindParam(), que realiza o “escape” de caracteres que podem ser ofensivos a sua Query.

As utilidades do PDO vão além de nos proteger de SQL Injection, pois ele nos oferece outros recursos como Transactions e etc. Para mais informações acesse o manual http://php.net/manual/pt_BR/book.pdo.php.

 

Gostaria de reforçar que SQL Injection é um assunto avançado, o exemplo citado neste post é um caso simples da situação.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *