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/AvisoDAO.php #432

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

Análise de vulnerabilidade do arquivo dao/AvisoDAO.php #432

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

Comments

@joaopontes22
Copy link
Contributor

Vulnerability Analysis

  1. A vulnerabilidade presente no código é a manipulação inadequada de exceções. Dentro do bloco catch, apesar de capturar a exceção PDOException, não há nenhuma ação sendo tomada para lidar com o erro. O código apenas chama $e->getMessage(), que retorna a mensagem de erro, mas não faz nada com essa mensagem (como exibir, logar, ou tratar o erro de alguma forma).

  2. Além disso, o método cadastrar faz rollback da transação no caso de falha, mas não re-lança a exceção para que o erro seja tratado em um nível mais alto na aplicação.

  3. Outra questão a ser considerada é que no método cadastrar, a conexão com o banco está sendo instanciada em cada chamada de método, o que não é eficiente. O ideal seria manter uma conexão aberta e reutilizá-la sempre que necessário.

Para corrigir as vulnerabilidades e melhorar o código:

  • No bloco catch, é importante tomar medidas apropriadas para lidar com as exceções, como exibir uma mensagem de erro, logar o erro ou relançar a exceção para um tratamento mais adequado.
  • No método cadastrar, após chamar $e->getMessage(), seria adequado lançar novamente a exceção com throw $e; para que a exceção seja propagada corretamente.
  • Considere aprimorar a gestão da conexão com o banco de dados, mantendo uma conexão aberta e reutilizando-a sempre que possível, ao invés de instanciá-la a cada chamada de método.
@GabrielPintoSouza
Copy link
Collaborator

Feedback

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

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