Heim > Datenbank > MySQL-Tutorial > Warum wird „AddWithValue()' gegenüber „Add()' bevorzugt, um SQL-Injection in MySQL zu verhindern?

Warum wird „AddWithValue()' gegenüber „Add()' bevorzugt, um SQL-Injection in MySQL zu verhindern?

Barbara Streisand
Freigeben: 2024-12-04 06:53:11
Original
263 Leute haben es durchsucht

Why is `AddWithValue()` Preferred Over `Add()` for Preventing SQL Injection in MySQL?

Command.Parameters.Add() ist veraltet: Verwendung von AddWithValue() in MySQL Query Injection

Die Verwendung von Command.Parameters.Add () in MySQL-Abfragen wurde aus Sicherheitsgründen veraltet. Um die Sicherheit der Abfrageinjektion zu gewährleisten, wird empfohlen, stattdessen die Methode AddWithValue() zu verwenden.

So aktualisieren Sie Ihren Code für die Verwendung von AddWithValue():

string SQL = "INSERT INTO `twMCUserDB` (`mc_userName`, `mc_userPass`, `tw_userName`, `tw_userPass`) VALUES (@mcUserName, @mcUserPass, @twUserName, @twUserPass)";
command.CommandText = SQL;
command.Parameters.AddWithValue("@mcUserName", mcUserNameNew);
command.Parameters.AddWithValue("@mcUserPass", mcUserPassNew);
command.Parameters.AddWithValue("@twUserName", twUserNameNew);
command.Parameters.AddWithValue("@twUserPass", twUserPassNew);
Nach dem Login kopieren

Durch die Verwendung von AddWithValue() eliminieren Sie das Risiko, Sonderzeichen oder bösartige SQL-Befehle in Ihre Abfrage aufzunehmen, und verhindern so SQL-Injection-Angriffe.

Die ursprüngliche SQL-Abfrage, die das umhüllte Platzhalter mit einfachen Anführungszeichen stellten ebenfalls eine Sicherheitslücke dar. Das richtige Format für eine SQL-Abfrage in MySQL ist die Verwendung von Backticks (`) anstelle von einfachen Anführungszeichen für Feld- und Tabellennamen. Daher sollte die aktualisierte SQL-Abfrage wie folgt aussehen:

string SQL = "INSERT INTO `twMCUserDB` (`mc_userName`, `mc_userPass`, `tw_userName`, `tw_userPass`) VALUES (@mcUserName, @mcUserPass, @twUserName, @twUserPass)";
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum wird „AddWithValue()' gegenüber „Add()' bevorzugt, um SQL-Injection in MySQL zu verhindern?. 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