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/exibir_beneficios.php #414

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

Comments

@joaopontes22
Copy link
Contributor

Vulnerability Analysis

  1. SQL Injection:
    O código está vulnerável a ataques de injeção de SQL devido ao uso de consultas SQL dinâmicas sem a devida sanitização dos dados de entrada. Se um usuário mal-intencionado fornecer valores manipulados para a variável "id_beneficios" ou "descricao_beneficios", poderá modificar a lógica da consulta SQL original e comprometer a integridade do sistema.

Para evitar essa vulnerabilidade, é altamente recomendável utilizar declarações preparadas (prepared statements) ao invés de construir consultas SQL dinâmicas. Com as declarações preparadas, é possível separar os comandos SQL da entrada do usuário, evitando assim a possibilidade de injeção de SQL.

Um exemplo de como melhorar o código utilizando declarações preparadas:

require_once 'Conexao.php';
$pdo = Conexao::connect();

$sql = 'SELECT id_beneficios, descricao_beneficios FROM beneficios';
$stmt = $pdo->prepare($sql);
$stmt->execute();

$resultado = array();
while ($row = $stmt->fetch()) {
    $resultado[] = array('id_beneficios' => $row['id_beneficios'], 'descricao_beneficios' => $row['descricao_beneficios']);
}

echo json_encode($resultado);

Além disso, é recomendável validar e filtrar qualquer entrada do usuário antes de utilizá-la em consultas SQL.

  1. Exposição de informações sensíveis:
    No código apresentado, a consulta está retornando todas as informações da tabela "beneficios" diretamente para o cliente. Dependendo do conteúdo da tabela e dos dados sensíveis contidos nela, essa prática pode expor informações confidenciais para usuários não autorizados.

Para mitigar essa vulnerabilidade, é importante limitar as informações retornadas na consulta SQL apenas ao necessário para a operação em questão. Se dados sensíveis precisarem ser retornados, é recomendável implementar controle de acesso e autenticação para garantir que apenas usuários autorizados possam visualizá-los.

Portanto, é fundamental revisar o código e implementar as devidas correções para garantir a segurança e a integridade do sistema.

@joaopontes22 joaopontes22 added the Security MN análise label May 22, 2024
@GabrielPintoSouza GabrielPintoSouza self-assigned this Jul 4, 2024
GabrielPintoSouza added a commit that referenced this issue Jul 4, 2024
@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