No processo de transição de mysql_* para PDO, você pode encontrar um dilema com a ausência de um equivalente direto para mysql_real_escape_string.
Nenhum equivalente direto
Tecnicamente, há PDO::quote(), mas seu uso é limitado. A verdadeira solução está na implementação correta de instruções preparadas.
Declarações preparadas protegem contra injeções
PDO, quando usado com instruções preparadas, protege inerentemente contra injeções de MySQL sem o necessidade de fuga adicional. Instruções preparadas vinculam parâmetros de entrada a espaços reservados, evitando que entradas mal-intencionadas sejam interpretadas como comandos SQL.
Exemplo: usando instruções preparadas em PDO
O código a seguir demonstra um banco de dados seguro consulta usando instruções preparadas:
false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
if ($_POST && isset($_POST['color'])) {
$stmt = $db->prepare("SELECT id, name, color FROM Cars WHERE color = ?");
$stmt->execute(array($_POST['color']));
$cars = $stmt->fetchAll(\PDO::FETCH_ASSOC);
var_dump($cars);
}
?>
Benefícios das declarações preparadas
Adicional Considerações
Conclusão
Declarações preparadas em PDO fornecem um mecanismo robusto e seguro para consultas de banco de dados sem a necessidade de funções como mysql_real_escape_string. Ao adotar essa abordagem, você pode prevenir efetivamente injeções de SQL e manter a integridade de seus dados.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3