Reichen vorbereitete PDO-Abfragen aus, um vor SQL-Injection zu schützen?
Hallo zusammen. Ich bin ein PHP-Anfänger und habe eine ernsthafte Frage zur Sicherheit. Ich habe viele Artikel gelesen, in denen behauptet wird, dass die Verwendung von PDO mit prepared statements das Problem der SQL-Injection vollständig löst. Aber ehrlich gesagt bin ich etwas verwirrt.
Zum Beispiel schreibe ich folgenden Code:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');
$stmt->execute(['email' => $_POST['email']]);
$user = $stmt->fetch();
?>
Das scheint sicher zu sein. Aber ich habe Warnungen gesehen, dass PDO nicht immer schützt, besonders wenn es falsch verwendet wird. Was passiert zum Beispiel, wenn ich Daten mit query() in die Abfrage einfüge oder wenn ich bindParam() mit dem falschen Typ verwende? Und was ist mit Fällen, in denen ich die Abfrage dynamisch erstelle, z.B. eine Sortierung oder LIMIT hinzufüge? Gibt es Fallstricke?
Könn
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen