17.17 SQL-Injection verhindern
Problem
Sie müssen die Gefährdung Ihrer PHP-Anwendung durch SQL-Injection-Angriffe ausräumen.
Lösung
Nutzen Sie eine Datenbankbibliothek wie PDO, die die für Ihre Datenbank erforderlichen Maskierungsvorgänge übernimmt:
<?php $db = new PDO('mysql:host=localhost;dbname=users', $_SERVER['DB_USER'], $_SERVER['DB_PASSWORD']); $statement = $db->prepare("INSERT INTO users (username, password) VALUES (:username, :password)"); $statement->bindParam(':username', $clean['username']); $statement->bindParam(':password', $clean['password']); $statement->execute(); $db = NULL; ?>
Diskussion
Der Einsatz gebundener Parameter sichert, dass Ihre Daten nie in einen Kontext gelangen, in dem sie als etwas anderes betrachtet werden als reine ...
Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.