Neste artigo veremos se PDO é a maneira mais segura de conectar a um banco de dados em PHP, quais as suas vantagens e desvantagens em relação as outras formas

pdo é a maneira mais segura de conectar a um bd php capa

Fala programador(a), beleza? Bora aprender mais sobre PHP e PDO!

Devemos sempre optar por PDO ao mysql_*, porém o mysqli que é uma versão mais nova do mysql_*, tem um nível de segurança alto também

O que vai diferenciar acima de qualquer forma de conectar a um banco de dados é o tratamento de dados que são passados do usuário

Se você conseguir prever todas as falhas de SQL Injection e outros hacks de banco, acaba não importando se você utilizar PDO e mysqli

Que por si só já tem artifícios para proteger de possíveis injeções de código

Neste tópico eu comento sobre a questão de mysqli x PDO, vale a pena dar uma olhada para entender a real diferença entre as duas libs

Prepared statements

É um recurso presente na PDO para que os parâmetros de uma consulta não sejam inseridas nela diretamente

E sim preparados, para que se possa eliminar qualquer intenção maliciosa

E depois montados em uma query e aí sim aplicada ao banco

Veja um exemplo:

<?php
/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>

Retirado diretamente da documentação do PDO

Perceba que os question marks (?), futuramente serão substituídos pelos dados enviados pelo sistema e depois a query é executada, esta é a camada de segurança a mais do PDO

Já o mysql_* não tinha esta função, executando a query com os parâmetros que vinham da requisição e acarretando em problemas

Porém esta lib já foi descontinuada e não deve ser utilizada, e também perceba que não é a mesma coisa que mysqli

Conclusão

Neste artigo vimos se PDO é a maneira mais segura de conectar a um banco de dados

Que é sim mais segura que mysql_*, porém quase se equipara ao mysqli

Uma das grandes vantagens é o prepared statements, que dá a possibilidade da query ser preparada antes de ser executada

Possibilitando a remoção de qualquer injeção de código nesta etapa de preparação

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Subscribe
Notify of
guest

0 Comentários
Inline Feedbacks
View all comments