Você usa um código PDO parecido com este?
Caso sim, considere desabilitar a funcionalidade de emulação de prepared statements (P
Veja como o ataque ocorre passo a passo:
$col = $_GET['col']; // A variável é controlada pelo usuário
$stmt = $pdo->prepare("SELECT `$col` FROM fruit WHERE name = ?");
$stmt->execute([$_GET['name']]);Caso sim, considere desabilitar a funcionalidade de emulação de prepared statements (P
DO::ATTR_EMULATE_PREPARES => false). O pesquisador Adam Kues aponta que, com a emulação ativa (padrão no MySQL), um código como esse é vulnerável a uma injeção de SQL complexa.Veja como o ataque ocorre passo a passo: