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 dao/DescricaoDAO.php #422

Closed
joaopontes22 opened this issue May 22, 2024 · 1 comment
Closed

Análise de vulnerabilidade do arquivo dao/DescricaoDAO.php #422

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

Comments

@joaopontes22
Copy link
Contributor

Vulnerability Analysis
Vulnerabilidades no código:

  1. Inclusão de arquivos insegura: A forma como o arquivo de configuração é incluído no código é insegura. O código primeiro tenta incluir um arquivo chamado "config.php" no diretório atual e, se não encontrar, vai subindo os diretórios até encontrar um arquivo com esse nome. Essa abordagem pode permitir a inclusão de arquivos maliciosos de locais inesperados, o que pode levar a execução de código indesejado. É recomendado revisar e limitar o local de inclusão dos arquivos de configuração.

  2. Uso de exceções genéricas: No bloco catch em várias partes do código, são utilizadas exceções genéricas sem um tratamento específico para cada caso de exceção. Isso pode dificultar a identificação e tratamento adequado de possíveis erros ou falhas no código. É recomendável capturar e tratar exceções de forma mais precisa, identificando de forma específica os tipos de exceções que podem ocorrer.

  3. Controle de transação inconsistente: O método alterar inicia uma transação, porém, o objeto $pdo é atribuído à null no bloco finally, o que pode resultar em um comportamento inconsistente, já que $pdo será nulo ao tentar realizar commit ou rollback. É importante manter o objeto da conexão PDO para possibilitar a execução correta das transações.

  4. Validação de índices no método loopAlteracao: No método loopAlteracao, não há uma validação adequada para os índices do array $texto. Se o tamanho de $texto for menor do que a quantidade de descrições existentes em $descricoes, pode ocorrer um erro ao acessar um índice inexistente em $texto. É importante verificar e garantir que os índices estão dentro dos limites do array para evitar possíveis erros.

Essas vulnerabilidades podem impactar a segurança, desempenho e robustez do código. Recomenda-se revisar e corrigir esses pontos para mitigar possíveis problemas no código.

@joaopontes22 joaopontes22 added the Security MN análise label May 22, 2024
@GabrielPintoSouza GabrielPintoSouza self-assigned this Jul 3, 2024
GabrielPintoSouza added a commit that referenced this issue Jul 3, 2024
@GabrielPintoSouza
Copy link
Collaborator

GabrielPintoSouza commented Jul 3, 2024

Feedback

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

Observações:

  1. A forma de inclusão do config.php é padronizada em toda a aplicação, se modificarmos em um arquivo teremos que modificar em todos.
  2. Resolvido
  3. Atribuição de $pdo = null retirada
  4. O método loopAlteração realiza a validação em if($tamanhoTexto > $indice) { ... } onde $indiceé o valor do maior índice de $descricoes

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