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);
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)";
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!