You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Vulnerability Analysis
O código apresenta vulnerabilidades de segurança, especificamente vulnerabilidades de Injeção de SQL.
Na função listarTodos(), a consulta SQL é construída diretamente concatenando parâmetros externos (id_almoxarife, id_almoxarifado, id_funcionario). Isso pode permitir que um atacante execute um ataque de injeção de SQL, inserindo comandos maliciosos na requisição para manipular a consulta SQL original.
Na função excluir($id), o parâmetro $id é utilizado diretamente na consulta SQL sem nenhuma validação ou sanitização. Isso permite que um atacante execute um ataque de injeção de SQL enviando um valor malicioso para a exclusão de registros.
Para mitigar as vulnerabilidades de Injeção de SQL, é recomendado utilizar prepared statements com parâmetros vinculados, ao invés de concatenar diretamente os valores na string da consulta SQL. Dessa forma, os parâmetros são tratados de forma segura e não permitirão a execução de comandos maliciosos.
Segue uma versão corrigida do código, utilizando prepared statements:
class AlmoxarifeDAO {
publicfunctionlistarTodos() {
try {
$pdo = Conexao::connect();
$stmt = $pdo->prepare(" SELECT afe.id_almoxarife, afe.id_funcionario, afe.id_almoxarifado, almox.descricao_almoxarifado, p.nome as descricao_funcionario, afe.data_registro FROM almoxarife afe LEFT JOIN almoxarifado almox ON almox.id_almoxarifado = afe.id_almoxarifado LEFT JOIN funcionario f ON f.id_funcionario = afe.id_funcionario LEFT JOIN pessoa p ON p.id_pessoa = f.id_pessoa");
$stmt->execute();
$almoxarife = $stmt->fetchAll(PDO::FETCH_ASSOC);
returnjson_encode($almoxarife);
} catch (PDOException$e) {
echo'Error:' . $e->getMessage();
}
}
publicfunctionexcluir($id) {
try {
$pdo = Conexao::connect();
$stmt = $pdo->prepare("DELETE FROM almoxarife WHERE id_almoxarife = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
} catch (PDOException$e) {
echo'Error:' . $e->getMessage();
}
}
}
Com essas alterações, as consultas SQL são executadas de forma segura, mitigando as vulnerabilidades de Injeção de SQL.
The text was updated successfully, but these errors were encountered:
Vulnerability Analysis
O código apresenta vulnerabilidades de segurança, especificamente vulnerabilidades de Injeção de SQL.
Na função
listarTodos()
, a consulta SQL é construída diretamente concatenando parâmetros externos (id_almoxarife
,id_almoxarifado
,id_funcionario
). Isso pode permitir que um atacante execute um ataque de injeção de SQL, inserindo comandos maliciosos na requisição para manipular a consulta SQL original.Na função
excluir($id)
, o parâmetro$id
é utilizado diretamente na consulta SQL sem nenhuma validação ou sanitização. Isso permite que um atacante execute um ataque de injeção de SQL enviando um valor malicioso para a exclusão de registros.Para mitigar as vulnerabilidades de Injeção de SQL, é recomendado utilizar prepared statements com parâmetros vinculados, ao invés de concatenar diretamente os valores na string da consulta SQL. Dessa forma, os parâmetros são tratados de forma segura e não permitirão a execução de comandos maliciosos.
Segue uma versão corrigida do código, utilizando prepared statements:
Com essas alterações, as consultas SQL são executadas de forma segura, mitigando as vulnerabilidades de Injeção de SQL.
The text was updated successfully, but these errors were encountered: