![phpMyAdmin phpMyAdmin](https://i0.wp.com/www.folhageral.com/arquivo/wp-content/uploads/2019/01/phpMyAdmin.jpg?resize=563%2C311&ssl=1)
Quem atua com programação sabe que é necessário contar com sistemas de proteção eficientes. A invasão de hackers e a presença de vírus pode comprometer o trabalho de empresas e instituições dos mais variados segmentos.
Por isso, na hora de criar um site é preciso estar atento para a questão da segurança do mesmo. Imagine, por exemplo, se o seu site é uma loja virtual e não apresenta mecanismos seguros para a proteção de dados seus e dos clientes.
É comum pensarmos apenas na hospedagem de site ou no registro de domínio na hora de investirmos em um projeto na web. Mas alguns detalhes mais técnicos também devem ser levados em conta.
Um desses detalhes é o SQL Injection, que traduzido literalmente significa “Injeção de SQL”. Esse problema é um ataque que insere uma Query via aplicação web ou local.
Sendo que o SQL consiste em uma das principais linguagens de programação, pois permite a troca de dados entre bancos de dados e aplicativos, é possível afirmar que esse ataque é baseado na manipulação do código SQL.
Nesse caso, o invasor insere uma instrução SQL devidamente personalizada por meio por meio de entradas tais como formulários ou URLs.
Graças a esse tipo de ataque, um hacker tem a possibilidade de obter qualquer tipo de dado importante que está presente no banco de dados de um computador.
Em determinados casos é possível também inserir comando nocivos capazes de conferir acesso total à máquina.
A técnica mais comum em se tratando de SQL Injection consiste em enganar o formulário login de uma determinada aplicação.
O funcionamento do SQL Injection
Na hora de acessar uma aplicação web, caso o sistema denote algum tipo de falha na segurança, o invasor poderá ter acesso a algum formulário do site e transmitir instruções SQL por meio do local destinado para o usuário deixar as suas informações.
Dessa maneira, o invasor estará apto a alterar uma série de dados na aplicação sem necessitar ter acesso ou autorização para realizar tal ação.
Há alguns métodos que contam com o intuito de evitar esse tipo de contratempo. Eles podem ser implementados no próprio servidor de banco de dados. Ou se possível eles são implementados no código fonte não importando o tipo de linguagem usada.
Além disso, a linguagem SQL, surgida em 1974, é considerada a linguagem padrão para a criação de banco de dados. Ela é de fácil utilização e por isso é também uma das mais conhecidas e usadas.
Diante do advento da informatização e armazenamento de conteúdos importantes em banco de dados, a linguagem SQL angariou muita importância. Ao mesmo tempo, métodos para a proteção de dados também se tornaram fundamentais.
Por essa razão, conhecer maneiras para evitar a SQL Injection é um tema relevante na área da programação.
A prevenção de ataques SQL Injection
O programador não sabe quando e como o hacker irá obter informação a respeito do banco de dados, o mantendo exposto.
Além disso, caso o programador esteja utilizando um pacote open source que pertence a um sistema único, os hackers podem reproduzir uma cópia de parte desse código, pois tais ataques são facilitados também diante de códigos mal escritos.
Hoje em dia existem 5 tipos distintos de SQL Injection. São elas:
Poorly Filtered Strings
Signatures Evasion,
Filter Bypassing,
Incorrect Typling Handing
e a Blind SQL Injection.
Felizmente existem métodos práticos que visam proteger o banco de dados de uma SQL Injection. Entre eles estão propiciar uma limitação de privilégios aos acessos, usar a parametrização das consultas, utilizar também as chamadas “stored procedures”.
Outros truques básicos que irão auxiliar o programador a evitar esse tipo de ataque consistem em:
1- Inserir a combinação de “addslashes()” e “trim()” quando for receber dados. Isso auxilia pelo fato de que o “addslashes” permite a adição de uma barra invertida antes de cada barra dupla ou simples. Esse procedimento também é chamado de ESCAPE.
O trim(), por sua vez, vai assegurar que os espaços em brancos sejam devidamente eliminados. É possível utilizar apenas um ou até os dois procedimentos se você preferir.
2- Utilizar mysql_real_escape_string() na hora de receber os dados. Essa funcionalidade possibilita escapar os caracteres especiais nos dados que foram recebidos.
3- Usar a strip_tags() quando efetuar o recebimento dos dados. Ao realizar esse procedimento você consegue retirar todas as tags HTML e PHP dos dados que foram enviados.
4- Utilizar intval() diante de toda a variável inteira que você receber. Desse modo é possível eliminar os caracteres que não forem numéricos e permitir a presença daqueles que são considerados inteiros.
Além disso, é possível também combinar mais de uma função em apenas uma mais abrangente.
Na linguagem PHP, a Injeção de SQL acontece em páginas de formulários que denotam algumas falhas. Por meio disso o hacker tem a possibilidade de burlar senhas e até deletar elementos que constituem o banco de dados como databases, tabelas e registros.
Conclusão
Não dá para deixar a segurança de lado quando o assunto é informação na internet, ainda mais nos dias de hoje em que o fornecimento de senhas e outros dados em sites são fundamentais.
Por isso, quem atua na área de programação deve conhecer maneiras para que os invasores mal intencionados se mantenham bem longe do seu trabalho.