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

Patricia Arquette
Freigeben: 2024-11-19 06:04:02
Original
819 Leute haben es durchsucht

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() grundsätzlich 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 sich auch auf den von mysql_real_escape_string() verwendeten Zeichensatz auswirkt.

Codebeispiel:

#include <mysql.h>

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;
}
Nach dem Login kopieren

Indem 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.

Das obige ist der detaillierte Inhalt vonKann mysql_real_escape_string() sicher mit benutzerdefinierten vorbereiteten Anweisungen verwendet werden?. 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