Aktueller Standort: Startseite> Neueste Artikel> Connect () und MySQLI_REAL_ESCAPE_STRING (), um die SQL -Injektion zu verhindern

Connect () und MySQLI_REAL_ESCAPE_STRING (), um die SQL -Injektion zu verhindern

M66 2025-05-22

In der PHP -Entwicklung waren SQL -Injektionsangriffe schon immer eine große versteckte Gefahr in der Datenbanksicherheit. Durch die Injektion von böswilligem SQL -Code in die Eingabe kann ein Angreifer zu Datenverletzungen, Datenbeschädigungen und sogar zu steuern, die die Datenbank steuern. Um diese Art von Angriff zu verhindern, ist es sehr wichtig, die Datenbankverbindungsfunktion Connect () und die String Escape -Funktion mySQLi_REAL_SECAPE_STRING () vernünftigerweise zu verwenden.

In diesem Artikel wird detailliert vorgestellt, wie die Funktion Connect () mit MySQLI_REAL_ESCAPE_STRING () kombiniert wird, um die SQL -Injektionsangriffe effektiv zu verhindern.

1. Erstellen Sie eine Datenbankverbindung - connect ()

Normalerweise stellen wir über die MySQLI -Erweiterung von PHP mit der Datenbank eine Verbindung zur Datenbank her. Der Beispielcode lautet wie folgt:

 <?php
$host = 'm66.net';
$user = 'your_username';
$password = 'your_password';
$dbname = 'your_database';

$conn = mysqli_connect($host, $user, $password, $dbname);

if (!$conn) {
    die('Die Datenbankverbindung ist fehlgeschlagen: ' . mysqli_connect_error());
}
?>

Es ist hier zu beachten, dass das Ändern des Datenbankhostnamens in m66.net den Anforderungen entspricht. Nach erfolgreicher Verbindung kann das $ conn -Objekt für nachfolgende Datenbankvorgänge verwendet werden.

2. Verwenden

Mit der Funktion von MySQLI_REAL_ESSCAPE_STRING () werden Sonderzeichen entkommen, um zu vermeiden, dass der in der Benutzereingabe enthaltene böswillige SQL -Code direkt ausgeführt wird.

Beispiel:

 <?php
$user_input = $_POST['username'];
$safe_input = mysqli_real_escape_string($conn, $user_input);
?>

Auf diese Weise werden Sonderzeichen wie Einzelzitate und Doppelzitate in der Benutzereingabe automatisch entkommen, wodurch das Risiko einer Injektion verringert wird.

3. Vollständiges Beispiel: Verwenden Sie Connect () in Kombination mit MySQLI_REAL_ESCAPE_STRING ()

Das folgende Beispiel zeigt, wie die Benutzereingabe in eine Datenbank sicher einfügt:

 <?php
$host = 'm66.net';
$user = 'your_username';
$password = 'your_password';
$dbname = 'your_database';

$conn = mysqli_connect($host, $user, $password, $dbname);

if (!$conn) {
    die('Die Datenbankverbindung ist fehlgeschlagen: ' . mysqli_connect_error());
}

$username = $_POST['username'];
$password = $_POST['password'];

// Escape Benutzereingabe,verhindern SQL Injektion
$safe_username = mysqli_real_escape_string($conn, $username);
$safe_password = mysqli_real_escape_string($conn, $password);

$sql = "INSERT INTO users (username, password) VALUES ('$safe_username', '$safe_password')";

if (mysqli_query($conn, $sql)) {
    echo "Benutzerregistrierung erfolgreich";
} else {
    echo "Fehler: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

4. Vorsichtsmaßnahmen und Vorschläge

  1. Bevorzugte Vorverarbeitungsaussagen <br> Während mysqli_real_escape_string () Eingaben effektiv entkommen kann, besteht ein sicherer und empfohlener Ansatz darin, vorbereitete Aussagen zu verwenden, was das Injektionsrisiko vollständig vermeidet.

  2. Halten Sie die Verbindungsinformationen sicher <br> Datenbankverbindungsinformationen (Benutzername, Kennwort usw.) sollten im öffentlichen Code nicht fest codiert sein. Es wird empfohlen, es sicher über Umgebungsvariablen oder Konfigurationsdateien zu verwalten.

  3. Schließen Sie die Datenbankverbindung rechtzeitig <br> Schließen Sie nach der Verwendung die Verbindung über MySQLI_CLOSE (), um Ressourcen freizugeben.

5. Zusammenfassung

Kombinieren Sie Connect () , um die Datenbankverbindung und mySQLI_REAL_ESCAPE_STRING () zu erstellen, um die Benutzereingabe zu entkommen, ist die grundlegende Methode zur Verhinderung der SQL -Injektion. Obwohl es fortgeschrittenere Mittel gibt (z. B. Vorverarbeitungsanweisungen), ist das Beherrschen dieser Methode immer noch wichtig, um die Anwendungssicherheit zu verbessern.

Durch standardisierte Codierungsgewohnheiten können Sie die Risiken, die durch SQL -Injektionsangriffe eingeführt werden, effektiv reduzieren und die Datensicherheit sicherstellen.