Os aplicativos da Web trouxeram consigo novas classes de vulnerabilidades de segurança de computadores, como a injeção de SQL. É uma classe de vulnerabilidades baseadas em validação de entrada. Usos típicos das informações confidenciais de vazamento de injeção de SQL de um banco de dados, lógica de autenticação de desvio ou adicionar contas não autorizadas a um banco de dados. Essa segurança impede o acesso não autorizado ao seu banco de dados e também impede que seus dados sejam alterados ou excluídos pelos usuários sem as permissões apropriadas. Detector de texto malicioso, validação de restrição, validação de comprimento da consulta e gerador de chave baseado em texto são os quatro tipos de técnica de filtração usadas para detectar e impedir que os ataques de injeção SQL acessem o banco de dados.
Estamos fazendo este projeto no Ubuntu
Detectaremos a injeção de SQL no servidor proxy para aumentar o nível de segurança. Como o Nginx é mais rápido e mais fácil de usar, usaremos -o como servidor proxy. Nosso aplicativo da web estará em execução no Apache Server.
Assim, à medida que o tráfego do navegador chegará ao servidor nginx, configuraremos suas portas
Adicione o arquivo webproxy do repositório ao /etc/nginx/sites-enabled .
Adicione o WebProxy a sites habilitados para NGINX. Aqui, encaminhamos o tráfego HTTP através do Nginx Server para a porta 8080.
Agora atualizaremos a porta do servidor Apache do serviço HTTP. Atualize o arquivo ports.conf deste repositório em /etc/apache2/ também atualize o arquivo 000-default.conf deste repositório em /etc/apache2/sites-enabled .
Substitua a pasta html deste repositório para /var/www/ pasta. Run bank.sql para criar banco de dados em MySql. (Crediantials para MySQL: Nome de usuário: ROOT Senha: Root)
Aqui adicionamos o aplicativo bancário
service nginx start
service apache2 startVerifique se o servidor nginx está configurado na porta no. 80 e o Apache Server está configurado na porta no. 8080.
Vá para localhost:8080/bank/login.html . Digite o nome de usuário como AA e injete a senha como um 'ou' y '=' y
Agora você pode ver bancos de dados inteiros.
Vá para localhost/bank/login.html . Digite o nome de usuário como AA e injete a senha como um 'ou' y '=' y
Agora você não pode ver bancos de dados inteiros e também não pode injetá -los com outra consulta.
Quando as credenciais do usuário são inseridas no sistema vulnerável, elas são passadas diretamente para o software de banco de dados. Mas se fornecermos validação de entrada antes de chegar a aplicativos da Web, como no Proxy Server, podemos reduzir o ônus do servidor Apache e processá -lo com eficiência em um servidor nginx mais rápido .
Então, eu compilei todas as palavras -chave MySQL usadas para ataque de injeção de SQL e atribuí pesos, de modo que toda a entrada seja validada e verifique se há ataques.
Como tal, o ataque de injeção de SQL é impedido.
Autor e Criador: Jayant Rane