Índice
Existem muitos tipos de ataques que podemos receber em nossos aplicativos, um dos mais comuns e que pode gerar uma grande quantidade de danos é o Injeção SQLEste ataque consiste em encontrar vulnerabilidades na maneira como lidamos com consultas em bancos de dados para extrair informações ou inserir valores que podem afetar sua funcionalidade.Para nos protegermos deste tipo de ataque, devemos primeiro saber em que consiste, desta forma podemos aprender que tipo de cuidados devemos tomar.
Como mencionamos, este ataque faz com que nosso banco de dados não funcione adequadamente, para isso o invasor introduz dados que fazem nossas consultas falharem de acordo com certas vulnerabilidades, com isso o invasor pode tentar pegue os esquemas de nossas tabelas ou inserir dados que possam comprometer a operação, como insira um usuário para acessar a seção administrativa de nosso aplicativo.
Uma das formas mais comuns é que inserimos os parâmetros diretamente conforme os recebemos dos controladores, por exemplo, temos uma pesquisa por categorias e recebemos do controlador o identificador de uma categoria a ser pesquisada, se passar diretamente sem limpá-la pode gerar um ataque que mostra ao invasor todas as categorias existentes.
Vejamos o seguinte código inseguro:
PROLONGAR
Podemos ver como no linha 6 construímos a condição de pesquisa e, em seguida, no linha 10 Nós o passamos diretamente para o método que constrói a consulta, um olho inexperiente pode não ver nenhum problema, mas se um invasor inserir o seguinte parâmetro: "1 ou 1 = 1" você pode obter a lista de toda a nossa mesa.Como nos proteger?A forma de nos protegermos, neste caso, passa por duas etapas básicas, a primeiro é que não podemos permitir que os dados sejam executados diretamente à medida que os recebemos, para isso, antes da consulta, devemos limpar o parâmetro com um método que busque por caracteres ilegais e, em caso de encontrá-los, encaminhar o usuário para uma página 404 ou página não encontrada.
Vamos ver no código a seguir como podemos filtrar o que recebemos:
Aqui nós revisamos com um frase regular Deixe apenas números ser o que nosso controlador receberá, caso contrário mandamos uma mensagem, todos podem fazer sua versão, mas o importante é controlar o que nossa aplicação receberá.
O segundo passo para evitar ataques é não trabalhe com o curinga "*" e sempre limitar as consultas quando esperamos um registro, desta forma evitamos expor todos os dados caso alguém consiga ultrapassar nossas previsões.
Capture exceçõesPor último, si un parámetro ilegal llega a entrar en nuestra aplicación, debemos evitar a toda costa que salga una traza del error, ya que esta posee datos sensibles de nuestra instalación y pueden ser utilizados en nuestra contra, por ello siempre debemos asegurarnos de capturar as exceções e enviar uma mensagem personalizada que não contenha muitos detalhes, pois esses detalhes podem ser vistos no ambiente de desenvolvimento.
Como pudemos ver, conhecer os ataques nos dá uma perspectiva diferente de como podemos proteger nosso aplicativo e como fazer para dar mais segurança aos nossos usuários.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo