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 html/saude/exame_excluir.php #238

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

Comments

@joaopontes22
Copy link
Contributor

Vulnerability Analysis
A vulnerabilidade neste código é a falta de validação e escape dos parâmetros recebidos via $_GET antes de serem utilizados na construção da query SQL. Isso pode permitir ataques de injeção de SQL.

Para corrigir isso, é recomendável utilizar prepared statements para evitar a injeção de SQL. Além disso, não é boa prática usar extract($_GET) sem sanitização dos dados.

Segue uma versão corrigida do trecho de código que lida com os parâmetros GET:

// Evita o uso de extract e faz a validação dos parâmetros recebidos via GET
$id_doc = isset($_GET['id_doc']) ? $_GET['id_doc'] : null;
$id_fichamedica = isset($_GET['id_fichamedica']) ? $_GET['id_fichamedica'] : null;

if ($id_doc && $id_fichamedica) {
    // Utilização de prepared statements para evitar injeção de SQL
    $sql = "SELECT se.id_exame, se.arquivo_nome, ada.descricao, se.`data` FROM saude_exames se JOIN saude_exame_tipos ada ON se.id_exame_tipos = ada.id_exame_tipo WHERE id_fichamedica = :id_fichamedica";
    $pdo = Conexao::connect();
    $stmt = $pdo->prepare($sql);
    $stmt->execute(array(':id_fichamedica' => $id_fichamedica));
    $docfuncional = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $docfuncional = json_encode($docfuncional);
    echo $docfuncional;
} else {
    echo "Parâmetros inválidos";
}

Esta correção adiciona a validação dos parâmetros recebidos via GET e utiliza prepared statements para construir a query SQL de forma segura.

@joaopontes22 joaopontes22 added the Security MN análise label May 9, 2024
@FlameOff
Copy link
Contributor

Alterado o código pdo, utilizando bindparam e mantendo a estrutura principal do código anterior com extract e $GET

FlameOff added a commit that referenced this issue Oct 23, 2024
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