O'Reilly logo

PHP 5 Kochbuch, Third Edition by Stephan Schmidt, Ulrich Speidel, Matthias Brusdeylins, Carsten Lucke, Adam Trachtenberg, David Sklar

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required