faceboook

Como prevenir injeção de código SQL no meu código PHP

A injeção de código SQL é um problema bastante conhecido entre desenvolvedores. Saiba aqui como prevenir isso no código PHP. Confira:

Autor: Redação Impacta

A injeção de código SQL é um problema bastante conhecido atualmente, consiste na inserção de códigos da linguagem SQL diretamente nos formulários e outros campos de uma página da web. Essa prática maliciosa tem como objetivo obter ou deletar informações dos bancos de dados. Confira a seguir algumas orientações que você deverá seguir para prevenir a injeção de código SQL no PHP.

Saiba como se prevenir da injeção de código SQL

Como ocorre a injeção de código SQL

A injeção por código SQL ocorre quando existem falhas de segurança na sua página PHP. Dentre as principais vulnerabilidades, a mais tradicional é quando o código concatena um valor inserido pelo usuário com uma consulta para o banco de dados.

Imagine que existe um campo de pesquisa onde o usuário deverá digitar um nome, mas, ao invés disso, o usuário mal-intencionado digita o seguinte comando SQL, “SELECT * FROM users; –”, diretamente no campo. Caso ele esteja com um super usuário e exista uma tabela com o nome de “users” no seu banco de dados, após a concatenação do que ele digitou com a do seu código, ele obterá acesso às informações dos usuários do seu banco de dados. Para se prevenir desse tipo de problema é necessário ficar atento e tomar alguns cuidados.

Personalize os usuários

Nunca conecte a sua aplicação ao banco de dados como “super usuário” ou “dono do banco de dados”. Esses dois usuários possuem privilégios muito elevados de segurança, muitas vezes possuem acesso a todas as tabelas, além de poderem fazer quaisquer modificações no banco.

A melhor opção é criar usuários personalizados e dar a eles apenas os privilégios necessários para executar as operações que você definirá no seu código PHP. Além de evitar que sejam acessados dados sem permissão, essa personalização de usuários ajudará na organização do seu sistema.

Verifique os tipos de dados

Se você está esperando receber um número do usuário, verifique se o conteúdo que foi preenchido no campo é realmente um número, antes de manipular esse conteúdo com SQL. Na linguagem PHP existem diversas funções para validar o tipo dos valores, como por exemplo a função “is_numeric()”, que verifica se o valor é um número ou não. Além do tipo, você também pode limitar e verificar o tamanho do valor do campo para evitar que sejam inseridos códigos mal-intencionados.

Tenha cuidado com a concatenação

Ao concatenar a entrada do usuário diretamente com a sintaxe do seu comando SQL, você estará fornecendo uma abertura para a injeção de SQL na sua página, essa é a maneira mais comum de acontecerem ataques. O ideal é sempre verificar se o usuário realmente preencheu os campos conforme o esperado, e não fazer uma adição direta do que ele digitou com o banco de dados, essa verificação vai prevenir bastante a sua página contra a injeção SQL.

Não divulgue informações desnecessárias

Muitas vezes, os relatórios de erros e exceções que ocorrem no sistema fornecem informações específicas que não devem ser mostradas ao usuário como, por exemplo, nome de tabelas ou usuários do banco, que quando fornecidas a pessoas mal-intencionadas, podem aumentar o risco de ataques por injeção de SQL.

Todas essas orientações anteriores são extremamente importantes para que sua página fique menos vulnerável a ataques por injeção de código SQL. Muitas vezes, são soluções simples, mas que têm a capacidade de evitar problemas sérios de segurança.

E você, gostou das dicas para prevenir os ataques por injeção de código SQL? Conte para a gente a sua opinião sobre o tema!

Quer ser um especialista nas linguagens de programação mais utilizadas no mercado?

A Impacta é o maior e melhor centro de treinamentos da América Latina e oferece diversos cursos de desenvolvimento, como na linguagem SQL e PHP. Todos preparam o aluno para as técnicas mais modernas de programação, além de oferecerem ótimas oportunidades de networking e crescimento profissional.

Deixe o seu comentário!

Não perca nenhum post!