„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Kann mysql_real_escape_string() sicher mit benutzerdefinierten vorbereiteten Anweisungen verwendet werden?

Kann mysql_real_escape_string() sicher mit benutzerdefinierten vorbereiteten Anweisungen verwendet werden?

Veröffentlicht am 13.11.2024
Durchsuche:649

Can mysql_real_escape_string() Be Used Safely with Custom Prepared Statements?

Hat mysql_real_escape_string() nicht behebbare Fehler?

Einige Skeptiker behaupten, dass die Funktion mysql_real_escape_string() grundlegend fehlerhaft ist und SQL-Abfragen nicht zuverlässig schützen kann . Sie verweisen auf veraltete Artikel als Beweismittel.

Kann es für benutzerdefinierte vorbereitete Anweisungen verwendet werden?

Trotz dieser Bedenken ist es immer noch möglich, mysql_real_escape_string() zum Erstellen zu nutzen individuell vorbereitete Abrechnungen. Es erfordert jedoch sorgfältige Aufmerksamkeit bei der Verarbeitung von Zeichensätzen.

Lösung:

Laut der MySQL-C-API-Dokumentation für mysql_real_escape_string() sollten Sie zum Festlegen mysql_set_character_set() verwenden der Zeichensatz. Dadurch wird sichergestellt, dass es auch Auswirkungen auf den von mysql_real_escape_string() verwendeten Zeichensatz hat.

Codebeispiel:

#include 

int main() {
  MYSQL *conn = mysql_init(NULL);
  mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0);

  // Change the encoding using mysql_set_charset()
  mysql_set_charset(conn, "utf8");

  // Create a custom prepared statement using mysql_real_escape_string()
  char query[1024];
  mysql_real_escape_string(conn, query, "SELECT * FROM users WHERE username='test'", sizeof(query));

  // Execute the query
  mysql_query(conn, query);

  mysql_close(conn);
  return 0;
}

Wenn Sie diesem Ansatz folgen und SET NAMES/SET CHARACTER SET vermeiden, können Sie mysql_real_escape_string() effektiv nutzen, um Ihre SQL-Abfragen vor Injektionen zu schützen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3