Utilizamos cookies e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar navegando, você concorda com estas condições.

OK

Protegendo formulários php de SQL Injection

15/09/2017 às 16:00 WordPress

Protegendo formulários php de SQL Injection

A segurança dos dados que transitam pelo seu site é um dos pontos importantes que merecem total atenção da sua parte, afinal de contas clientes podem enviar dados pessoais como endereços de e-mail, endereço do seu estabelecimento, anexos contendo informações confidenciais.

E ter qualquer problema de segurança que possa expor essas informações é sem dúvidas um problema que nunca pode existir se você deseja manter a confiança de seus visitantes e clientes.

Como os formulários são um item que está presente em praticamente todos os sites, hoje vamos falar um pouco de como uma técnica de fraude conhecida popularmente como SQL Injection, pode ser contornada e você ficar livre de dores de cabeça por conta dos sérios problemas que essas brechas podem causar.

O mais indicado é que você esteja em uma Hospedagem de Site de qualidade, mas não depende apenas dela, vamos falar um pouco do que você precisa fazer para se preparar contra essa ameaça.

O grande perigo do SQL Injection

Se você já conhece um pouco, sabe como funciona a base dessa técnica, que resulta em alterações diretas no seu banco de dados através de instruções enviadas através do seu formulário, instruções essas que não deveriam existir e tão pouco serem funcionais, sabemos que apenas o seu sistema pode alterar o banco de dados e armazenar informações novas e lê-las, a segurança de seus dados dependem exclusivamente disso.

Pense em uma situação muito grave, seu site possui um formulário onde os usuários podem enviar informações pessoais, como por exemplo um currículo.

Com um formulário vulnerável, pense que os dados podem ser alterados para conter informações erradas, podem ser direcionados para outro endereço de e-mail, podem conter links maliciosos, ou seja, são muitos os problemas que podem surgir apenas por um detalhe que faz toda a diferença.

Dependendo do nível de permissões do seu banco de dados, o comprometimento pode ser ainda maior, pois comandos shell podem ser executados e interferir diretamente no seu sistema operacional.

Como tratar desse problema?

A forma mais fácil de detectar problemas é testando seus formulários antes de serem postos em produção, você pode encontrar por exemplo ferramentas automatizadas para essas atividades, você pode por exemplo utilizar extensões de teste de segurança disponíveis para os navegadores, o Hack Tab Web Security Tests é um deles.

Com essa extensão você pode elaborar testes de segurança e acompanhar os resultados passo-a-passo, dessa forma identificar os possíveis problemas e torna mais fácil e assertivo.

Um grande detalhe é o de sempre realizar TODAS as validações necessárias para garantir que os dados estão sendo tratados da forma correta, trabalhando com o PHP você deve cuidar para que existam controles de quais os tipos de dados vão ser digitados, a forma como serão verificados e validados para conterem apenas o que foi definido, ou seja, campos numéricos vão conter apenas números, campos de e-mail ou nome apenas texto, e assim por diante.

Pular essa etapa faz com que uma brecha fique sempre aberta para pessoas mal-intencionadas, e com isso você acaba podo em risco a segurança dos seus visitantes e clientes.

Barrando o uso do SQL Injection de vez

Para que você fique livre de uma vez por todas de tentativas de ataque SQL, prepare-se para realizar correções no seu banco de dados e outros ajustes no seu código fonte, o ideal é que seu banco de dados tenha as permissões apenas necessárias para a execução do seu código, não aplique todas as permissões de escrita e leitura sem a necessidade disso.

Em uma falha, você pode estar comprometendo a sua base de dados por dar acessos de mais a um usuário.

Já o procedimento de validação dos formulários, você pode acompanhar nosso artigo como trabalhar com a validação de formulários php, nele você consegue ter uma visão geral de como trabalhar corretamente com dados e filtrar todos eles de forma que não seja permitida qualquer tentativa de injeção de códigos maliciosos no seu banco de dados.

As mensagens de erro são apenas para você

Mais um ajuste que fará a diferença na hora de proteger seus formulários é ocultar a exibição das mensagens de erro na sua aplicação, essas informações devem unicamente serem salvas em logs de controle e serem disponibilizadas exclusivamente para você.

Com a exibição dos erros no PHP para display_errors = Off, você evita que os caminhos únicos de suas aplicações sejam expostos para todos e evita que testes mais profundos sejam feitos em seus arquivos por conta disso.

Quando seu site está sob pesquisa de usuários mal-intencionados você acaba passando por muitos problemas, seja por instabilidade devido a muitas tentativas de acesso, banco de dados recebendo muitos dados inválidos, mensagens de e-mail enchendo sua caixa de mensagens, entre outros inconvenientes.

Conclusão

Proteger seus dados e de seus visitantes é essencial para conquistar a confiança de todos eles e principalmente garantir que podem confiar no seu trabalho, evitando spam, protegendo a privacidade de todos, garantindo que suas informações pessoais estarão armazenadas conforme prometido.

Use certificados SSL para dar mais confiança, realize testes constantes para ter a certeza de que tudo está funcionando, mantenha a sua rotina de segurança sempre atualizada, isso ajuda a evitar problemas.

Gostou de nosso post? Compartilhe: