Vorbereitete MySQL-Anweisungen: Jenseits von Escaping
Manuelles Escapen ist zwar ein gängiger Ansatz zum Schutz vor SQL-Injection, kann aber fehleranfällig sein. PDO (PHP Data Objects) bietet eine robuste Alternative innerhalb des Standard-MySQL.
PDO stellt sicher, dass alle Datenbankeingaben als Text behandelt werden, sodass kein manuelles Escape erforderlich ist. Dieser Ansatz bietet in Kombination mit der richtigen HTML-Entitätskodierung für die Datenanzeige einen soliden Schutz gegen Injektionen.
Um eine Datenbankverbindung mit PDO herzustellen, erstellen Sie ein Datenbankobjekt:
try {
$db = new PDO("mysql:host=[hostname];dbname=[database]", '[username]', '[password]');
$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES utf8");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->exec('SET NAMES utf8');
} catch (PDOException $e) {
echo $e->getMessage();
}
Um eine Abfrage vorzubereiten, verwenden Sie die Prepare-Methode:
$stmt = $db->prepare('SELECT * FROM Table WHERE id = ?');
Binden Sie Werte mit der Methode bindParam an die Platzhalter der Abfrage:
$stmt->bindParam(1, $id);
Führen Sie die Abfrage mit der Methodeexecute aus:
$stmt->execute();
PDO bietet zahlreiche Vorteile:
Denken Sie daran, immer PDO für Datenbankverbindungen zu verwenden und es mit der richtigen HTML-Entitätskodierung für eine sichere Datenverarbeitung zu kombinieren. PDO bietet eine robuste und effiziente Möglichkeit, Ihre Anwendungen vor SQL-Injection zu schützen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3