PDO prepared statements são suficientes para proteção contra SQL injection?
Olá a todos! Sou um desenvolvedor PHP iniciante e estou tentando entender a segurança ao trabalhar com bancos de dados. Li muitos artigos que dizem que PDO e prepared statements são a bala de prata contra SQL injection. Mas algumas coisas me deixam confuso.
Aqui está um exemplo do meu código:
```php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->execute([':username' => $_GET['username']]);
$user = $stmt->fetch();
```
Acho que isso é seguro, pois estou usando placeholders. Mas depois vi este código em um projeto antigo:
```php
$pdo->query("SELECT * FROM users WHERE id = " . $_GET['id']);
```
E fiquei curioso: e se eu acidentalmente esquecer de usar prepared statements em algum lugar? Ou se eu usar PDO, mas configurar incorretamente a emulação de prepared statements? Um atacante poderia contornar a proteção do PDO?
Também ouvi falar sobre consultas dinâmicas
No answers yet.
Faça login para deixar uma resposta