Real_escape_String ist eine Methode in der MySQLI -Erweiterung, die hauptsächlich zur Flucht von Sonderzeichen in Saiten verwendet wird, wodurch ein bösartiger SQL -Code verhindert wird, dass es ausgeführt wird. Es fügt automatisch einen Backslash ( \ ) vor gefährlichen Zeichen hinzu, was dazu führt, dass sie seine besondere Bedeutung in der SQL -Syntax verliert.
Jede Situation, in der die Benutzereingabe direkt in SQL -Anweisungen gespleißt wird, muss dem Eingabeinhalt entkommen. Andernfalls kann ein Angreifer Eingaben verwenden, um böswillige Anweisungen zu konstruieren, wodurch die Logik der Datenbankvorgänge geändert werden.
Hier ist ein einfaches Beispiel, das zeigt, wie man real_escape_string verwendet, um die Benutzereingabe sicher zu behandeln:
<Code> & lt;? php // MySQLi -Verbindung $ conn = new MySQLi ('Gitbox.net', 'Benutzername', 'Passwort', 'Datenbank') erstellen; // Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($ conn-> connect_error) {
Die ("Verbindung fehlgeschlagen:". $ conn-> connect_error);
}
// Angenommen, der Benutzer hat den Benutzernamen über das Formular eingereicht
$ user_input = $ _post ['userername'];
// Verwenden Sie real_esescape_string, um den Benutzereingang zu entkommen
$ safe_input = $ conn-> real_escape_string ($ user_input);
// SQL Query -Anweisung konstruieren
$ sql = "Select * von Benutzern, wobei userername = '$ safe_input'" ";
// Abfrage ausführen
$ result = $ conn-> query ($ sql);
if ($ result-> num_rows> 0) {
// Abfrageergebnisse verarbeiten
while ($ row = $ result-> fetch_assoc ()) {
Echo "Benutzer -ID:". $ row ["id"]. " - Benutzername:". $ row ["Benutzername"]. "<br>";
}
} anders {
echo "kein passender Benutzer gefunden";
}
$ conn-> close ();
?>
</code>
Real_escape_String kann Zeichen in Zeichenfolgen identifizieren, die von der SQL -Engine missverstanden werden können, wie z .
Die Verbindung muss hergestellt worden sein : real_escape_string hängt vom Datenbankverbindungszustand ab und sollte nicht vor der Verbindung aufgerufen werden.
Anwendungsbereich : Diese Funktion ist nur für die String -Flucht geeignet und kann sicherer vorbereitete Anweisungen ersetzen.
Es wird empfohlen, Vorverarbeitungsanweisungen zu verwenden : Obwohl real_escape_string wirksam ist, wird empfohlen, Vorverarbeitungsanweisungen von MySQLI oder PDO für SQL -Abfragen zu verwenden, die die Sicherheits- und Code -Wartbarkeit weiter verbessern können.
Verwandte Tags:
SQL