Sichere MySQL-Abfragen mit der MySQL-Erweiterung
Einführung
Trotz der Verbreitung von PDO, Die Funktionsfamilie mysql_* bleibt eine häufige Wahl für die Interaktion mit PHP-Datenbanken. Obwohl diese Bibliothek bei ordnungsgemäßer Verwendung absolut sicher ist, führt ihre Verwendung häufig zu Sicherheits- und technischen Problemen. Dieser Artikel bietet ein perfektes Codebeispiel, das zeigt, wie man die MySQL-Erweiterung sicher verwendet.
Vermeidung häufiger Fallstricke
Die mysql_*-Funktionen sind für mehrere häufige Probleme berüchtigt, darunter :
Beispielcode
Das folgende Codebeispiel implementiert ein einfaches PHP-Skript, das a aktualisiert Datenbanktabellenzeile basierend auf POST-Variablen bei gleichzeitiger Minderung der oben genannten Risiken:
<?php header('Content-type: text/html; charset=utf-8'); error_reporting(E_ALL | E_STRICT); ini_set('display_errors', 1); $config = array( 'host' => '127.0.0.1', 'user' => 'my_user', 'pass' => 'my_pass', 'db' => 'my_database' ); $connection = @mysql_connect($config['host'], $config['user'], $config['pass']); if (!$connection) { trigger_error('Unable to connect to database: ' . mysql_error(), E_USER_ERROR); } if (!mysql_select_db($config['db'])) { trigger_error('Unable to select db: ' . mysql_error(), E_USER_ERROR); } if (!mysql_set_charset('utf8')) { trigger_error('Unable to set charset for db connection: ' . mysql_error(), E_USER_ERROR); } $result = mysql_query( 'UPDATE tablename SET name = "' . mysql_real_escape_string($_POST['name']) . '" WHERE id = "' . mysql_real_escape_string($_POST['id']) . '"' ); if ($result) { echo htmlentities($_POST['name'], ENT_COMPAT, 'utf-8') . ' updated.'; } else { trigger_error('Unable to update db: ' . mysql_error(), E_USER_ERROR); } ?>
Schlüssel Funktionen
Fazit
Dieses Codebeispiel bietet eine solide Grundlage für sichere MySQL-Abfragen mithilfe der mysql_*-Funktionsfamilie. Es behebt häufige Fallstricke, indem es eine ordnungsgemäße Fehlerbehandlung implementiert, SQL-Injection verhindert und Unicode unterstützt. Durch die Übernahme dieser Praktiken können Entwickler sichere und zuverlässige datenbankgesteuerte Anwendungen schreiben.
Das obige ist der detaillierte Inhalt vonWie kann ich die MySQL-Erweiterung in PHP sicher verwenden, um SQL-Injection und andere Fallstricke zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!