1. Home
  2. Como se proteger do SQL Injection

Como se proteger do SQL Injection

O que é o SQL Injection

SQL Injection é um ataque que consiste na inserção de uma query via aplicação web. A Locaweb sempre toma todas as precauções em relação a atualizações para evitar quaisquer brechas de segurança nos sites hospedados. Tais vulnerabilidades estão presentes em códigos (ASP, PHP, etc.) colocados pelos próprios clientes.

Este é o caso da SQL Injection, brecha através da qual um invasor pode executar queries arbitrários numa base relacional via “injeção” de comandos em campos de formulários.

Entretanto às vezes surgem vulnerabilidades que são exploradas através de programação, de nada adiantando as precauções que tomamos.

Atualmente existem 5 tipos de SQLi 

  • Poorly Filtered Strings
  • Incorrect type handling
  • Signature Evasion
  • Filter Bypassing
  • Blind SQL Injection
Como se proteger?

De acordo com a OWASP as melhores práticas para se previnir de um ataque de SQLi são:

  • Parametrização das consultas
  • Usar “stored procedures”
  • Escapar toda entrada fornecida pelo usuário
  • Limitar privilégios aos acessos

Usando a função addslashes() tem o mesmo efeito que habilitar magic quotes, porém só aplica onde for conveniente. O que ela faz é colocar um caracter de escapa antes das aspas simples ou dupla, antes da barra invertida e do caracter NULL.

Usar ‘prepared statements’ ao invés do próprio código SQL atribuíndo todas as outras medidas de prevenção usar esta, nos daria mais performace e segurança, além de ser mais simples de ler e escrever.

Porem só pode ser usado em SELECT, INSERT, UPDATE, REPLACE, DELETE e CREATE TABLE.

$login = $_GET[‘login’] $query = “SELECT * FROM registos WHERE login = ‘$login'”;

Ficaria assim:

$query = “SELECT * FROM registos WHERE login = OR 1”;

Recomendamos Limitar Privilégios das contas com acesso ao DB. É importante manter apenas os privilégios e acessos necessários. É comum muitas permissões serem dadas para resolver problemas de funcionalidade, muito parecido ao chmod 777 no linux.

Para se proteger do SQL Injection verifique se todo parâmetro passado para o site é tratado antes que seja concatenado na query.

Referências

Aproveite e conheça outros produtos da Locaweb, como o Hospedagem de Sites, clique aqui e saiba mais!

Este artigo foi útil ?