Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Análise de vulnerabilidade do arquivo controle/AlmoxarifadoControle.php #496

Closed
joaopontes22 opened this issue May 23, 2024 · 1 comment
Assignees
Labels
Security MN análise

Comments

@joaopontes22
Copy link
Contributor

Vulnerability Analysis
O código apresenta algumas vulnerabilidades que podem comprometer a segurança e integridade do sistema. Vamos analisar cada uma delas:

  1. Vulnerabilidade de Injeção de SQL:
    Nas funções incluir e excluir, os parâmetros vindos da requisição não são tratados ou validados antes de serem utilizados em queries SQL. Isso pode permitir a um atacante realizar injeção de SQL, modificando a lógica das consultas e causando danos ao banco de dados. Para mitigar essa vulnerabilidade, é importante utilizar prepared statements ou funções de escape de strings antes de executar consultas SQL com dados não confiáveis.

  2. Tratamento de Exceções:
    Ao capturar e tratar exceções, o código apenas exibe a mensagem de erro na tela sem realizar nenhum tratamento adicional. Isso pode expor informações sensíveis sobre a estrutura do banco de dados, o que pode ser explorado por um atacante. O ideal é personalizar as mensagens de erro e logar as exceções de forma apropriada, sem exibir detalhes sensíveis ao usuário.

  3. Uso da função extract:
    A função extract extrai as variáveis da requisição para o escopo atual do script, o que pode causar conflitos de variáveis ou mesmo sobrescrever variáveis existentes. É recomendável evitar o uso dessa função para garantir a integridade e previsibilidade do código.

  4. Redirecionamento sem validação:
    Nos redirecionamentos realizados com a função header('Location: ...'), não há uma validação adequada dos dados da requisição que são utilizados. Isso pode resultar em redirecionamentos maliciosos ou inesperados. É importante garantir que apenas URLs confiáveis sejam utilizadas para redirecionamento.

Para corrigir essas vulnerabilidades, é recomendável:

  • Utilizar prepared statements ou funções de escape de strings para prevenir injeção de SQL.
  • Personalizar e logar adequadamente as mensagens de erro ao lidar com exceções.
  • Evitar o uso da função extract e utilizar diretamente as variáveis da requisição.
  • Validar e sanitizar os dados antes de utilizá-los em redirecionamentos.
@joaopontes22 joaopontes22 added the Security MN análise label May 23, 2024
@GabrielPintoSouza GabrielPintoSouza self-assigned this Jun 18, 2024
@GabrielPintoSouza
Copy link
Collaborator

GabrielPintoSouza commented Jun 18, 2024

Feedback

  • O comentário foi útil? 3 = relativamente útil
  • O erro foi fácil de localizar? 5 = Muito fácil
  • Foi possível corrigir? Sim
  • O quão fácil de corrigir? 4 = Fácil

Sobre vulnerabilidade SQL: A aplicação utiliza o padrão MVC com DAO, então os prepared statements não ficam na classe AlmoxarifadoControle e estão devidamente implementados no seu respectivo DAO.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Security MN análise
Projects
None yet
Development

No branches or pull requests

2 participants