Heim >Backend-Entwicklung >PHP-Tutorial >Wie können parametrisierte Abfragen in MySQLi PHP-Anwendungen vor SQL-Injection-Schwachstellen schützen?
Verwendung von Parametern in MySQLi für effiziente und sichere Abfragen
Im Bereich der PHP-Datenbankprogrammierung, wenn mit MySQL über die MySQLi-Schnittstelle gearbeitet wird, Es kommt häufig vor, dass bei Abfragen dynamische Parameter beteiligt sind. Betrachten Sie das folgende Beispiel:
SELECT $fields FROM $table WHERE $this = $that AND $this2 = $that2
Um solche Abfragen manuell durch Interpolation von Werten in die SQL-Zeichenfolge zu erstellen, würden Sie etwa so vorgehen:
$search = array('name' => 'michael', 'age' => 20); $query = "SELECT $fields FROM $table WHERE name = '$search[name]' AND age = '$search[age]'";
Dieser Ansatz wirft jedoch Bedenken auf Schwachstellen durch SQL-Injection. Um dieses Problem anzugehen, bietet MySQLi eine robuste Lösung mit parametrisierten Abfragen.
Die Leistungsfähigkeit parametrisierter Abfragen
Parametrierte Abfragen ermöglichen es Ihnen, Abfrageparameter getrennt von der SQL-Anweisung selbst zu übergeben . Dies erhöht die Sicherheit erheblich, indem die Ausführung von bösartigem Code verhindert wird, der Benutzereingaben ausnutzen kann. So würde eine parametrisierte Abfrage für das obige Beispiel aussehen:
$db = new mysqli(...); $name = 'michael'; $age = 20; $stmt = $db->prepare("SELECT $fields FROm $table WHERE name = ? AND age = ?"); $stmt->bind_param("si", $name, $age); $stmt->execute(); $stmt->close();
Detaillierte Erklärung
Zusätzliche Tipps
Das obige ist der detaillierte Inhalt vonWie können parametrisierte Abfragen in MySQLi PHP-Anwendungen vor SQL-Injection-Schwachstellen schützen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!