Heim > Datenbank > MySQL-Tutorial > Ist „mysql_real_escape_string()' wirklich fehlerhaft oder wird es einfach missverstanden?

Ist „mysql_real_escape_string()' wirklich fehlerhaft oder wird es einfach missverstanden?

Mary-Kate Olsen
Freigeben: 2024-12-04 07:15:17
Original
171 Leute haben es durchsucht

Is `mysql_real_escape_string()` Really Flawed, or Just Misunderstood?

Ist mysql_real_escape_string() ein schwerwiegender Fehler?

Trotz Behauptungen über seine Unzuverlässigkeit bleibt mysql_real_escape_string() ein wertvolles Werkzeug zum Erstellen eigener vorbereiteter Anweisungen . Hier ist eine Aufschlüsselung seiner Funktionalität und wie man es effektiv nutzt.

mysql_real_escape_string() erklärt

In der MySQL C API-Dokumentation heißt es: „Wenn Sie das Zeichen ändern müssen Für den Verbindungssatz sollten Sie die Funktion mysql_set_character_set() verwenden, anstatt SET NAMES (oder SET CHARACTER) auszuführen SET)-Anweisung.“

Das bedeutet, dass Sie zur korrekten Verwendung von mysql_real_escape_string() mysql_set_charset() verwenden sollten. mysql_set_charset() von PHP spiegelt mysql_set_character_set() von MySQL wider.

Proof Code

<?php
$mysqli = new mysqli("localhost", "username", "password", "database");

// Set the character set using mysql_set_charset()
$mysqli->set_charset("utf8mb4");

// Prepared statement using mysql_real_escape_string()
$stmt = $mysqli->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param('s', mysql_real_escape_string($_GET['username']));
$stmt->execute();
?>
Nach dem Login kopieren

In diesem Beispiel stellt mysql_set_charset() sicher, dass die Verbindung den Zeichensatz utf8mb4 verwendet. Dies ermöglicht es mysql_real_escape_string(), Zeichen ordnungsgemäß zu verarbeiten, die ansonsten anfällig für SQL-Injection sein könnten.

Fazit

Während es wichtig ist, die Einschränkungen von mysql_real_escape_string() zu verstehen, ist die Verwendung von In Verbindung mit mysql_set_charset() können Sie damit effektiv Ihre eigenen vorbereiteten Anweisungen erstellen. Durch die Durchführung dieser Schritte können Sie die Risiken der SQL-Injection mindern und die Sicherheit Ihrer Anwendungen aufrechterhalten.

Das obige ist der detaillierte Inhalt vonIst „mysql_real_escape_string()' wirklich fehlerhaft oder wird es einfach missverstanden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage