A segurança dos dados é uma preocupação primordial no desenvolvimento de qualquer aplicação web. Quando se trata de PHP, existem várias maneiras de acessar um banco de dados de forma segura. Este post mostrará como usar a PHP Data Objects (PDO) para realizar essa tarefa de forma eficaz e segura. Antes de nos aprofundarmos no "como", vamos entender o "porquê". A injeção de SQL é um dos ataques mais comuns que visam explorar as vulnerabilidades em seu código PHP. Ela ocorre quando os invasores conseguem manipular suas consultas SQL, potencialmente danificando seu banco de dados e vazando informações sensíveis. Para evitar isso, devemos garantir que todos os dados enviados para o banco de dados sejam tratados como strings simples, e não como parte do SQL. É aí que o PDO entra em cena. O PDO suporta consultas preparadas, que garantem uma maneira segura de acessar o banco de dados. Veja como você pode utilizar o PDO em seu código PHP. Em seu ambiente de produção, ao invés de exibir erros diretamente na tela, que pode revelar detalhes sensíveis sobre o banco de dados, recomendamos que você registre esses erros para análise posterior. Existem outras medidas que você pode adotar para proteger ainda mais seu banco de dados: Restringir as permissões do usuário do banco de dados: O usuário que seu aplicativo usa para se conectar ao banco de dados não precisa de permissões de administrador. Ele só precisa das permissões necessárias para executar suas tarefas (por exemplo, SELECT, INSERT, UPDATE, DELETE). Sanitizar a entrada do usuário: Além de usar consultas preparadas, é essencial verificar e limpar todos os dados recebidos dos usuários para evitar ataques XSS e outros tipos de ataques. Sempre lembre-se, a segurança é um processo contínuo e é importante estar sempre atualizado sobre as melhores práticas e novas vulnerabilidades que podem surgir.
<?php $servername = "seu_servidor"; $username = "seu_nome_de_usuario"; $password = "sua_senha"; $dbname = "nome_do_banco_de_dados"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $nome = "João"; $email = "joao@example.com"; $stmt = $conn->prepare("INSERT INTO MinhaTabela (nome, email) VALUES (:nome, :email)"); $stmt->bindParam(':nome', $nome); $stmt->bindParam(':email', $email); $stmt->execute(); echo "Novo registro criado com sucesso"; } catch(PDOException $e) { echo "Erro: " . $e->getMessage(); } $conn = null; ?>
Learn PHP, the programming language used to build sites like Facebook, Wikipedia and WordPress, then discover how these sites store information in a database (MySQL) and use the database to create the web pages. This full-color book is packed with inspiring code examples, infographics and photography that not only teach you the PHP language and how to work with databases, but also show you how to build new applications from scratch. It demonstrates practical techniques that you will recognize from popular sites where visitors can: Register as a member and log in Create articles, posts and profiles that are saved in a database Upload their own images and files Automatically receive email notifications Like and comment on posts. To show you how to apply the skills you learn, you will build a complete content management system, enhanced with features that are commonly seen on social networks. Written by best-selling HTML & CSS and JavaScript & jQuery author Jon Duckett, this book uses a unique visual approach, with step-by-step instructions, practical code examples and pro tips that will teach you how to build modern database-driven websites using PHP.