Heim >Datenbank >MySQL-Tutorial >Ist mysql_real_escape_string() wirklich fehlerhaft oder wird es nur missbraucht?
Angebliche Fehler entlarven: Untersuchung der Zuverlässigkeit von mysql_real_escape_string()
Trotz Behauptungen, dass mysql_real_escape_string() Mängel aufweist, deuten Beweise darauf hin, dass es robust ist Schutz vor SQL-Injection-Schwachstellen bei Verwendung angemessen.
Die Untersuchung sogenannter Fehler zeigt, dass sie typischerweise auf unsachgemäße Verwendung oder veraltete Informationen zurückzuführen sind. Wie in der MySQL-C-API-Dokumentation ausdrücklich angegeben, ist es wichtig, den Zeichensatz mit mysql_set_character_set() und nicht mit SET NAMES- oder SET CHARACTER SET-Anweisungen festzulegen. Die letztgenannten Optionen haben keinen Einfluss auf den von mysql_real_escape_string() verwendeten Zeichensatz.
Mysql_set_charset() von PHP dient als Gegenstück zu mysql_set_character_set() von MySQL. Durch die Verwendung zur Änderung der Codierung können Entwickler die Kompatibilität sicherstellen und potenzielle Probleme umgehen.
Codebeispiel:
<?php $mysqli = new mysqli('host', 'user', 'password', 'database'); $mysqli->set_charset('utf8mb4'); // Set utf8mb4 encoding // Example usage of mysql_real_escape_string() $escaped_string = mysql_real_escape_string($mysqli->connect_errno, $_POST['username']);
Dieser Ansatz legt den Zeichensatz effektiv fest und maskiert Benutzereingaben mithilfe von mysql_real_escape_string( ), wodurch das Risiko von SQL-Injection-Angriffen verringert wird.
Das obige ist der detaillierte Inhalt vonIst mysql_real_escape_string() wirklich fehlerhaft oder wird es nur missbraucht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!