Heim >Datenbank >MySQL-Tutorial >Wie kann es zu einer SQL-Injection in INSERT-Anweisungen kommen, auch bei Benutzerkommentaren, und wie kann sie verhindert werden?
SQL-Injection bei INSERT-Anweisung mit Kommentaren
Bei der Entwicklung von Webanwendungen ist es wichtig, sich vor SQL-Injections zu schützen, auch bei vermeintlich sicheren Vorgängen wie INSERT-Anweisungen, die Benutzereingaben enthalten.
In diesem speziellen Szenario, in dem ein Umfrage-Webformular Textfelder für Kommentare enthält, kann es tatsächlich zu einer SQL-Injection kommen, wenn Die Kommentareingabe wird nicht sicher behandelt. Stellen Sie sich einen Benutzer vor, der den folgenden böswilligen Kommentar abgibt:
'); DELETE FROM users; --
Wenn die SQL-Anweisung zum Einfügen dieses Kommentars naiv aufgebaut ist, könnte dies zu einer unbefugten Löschung aller Benutzerdatensätze führen:
INSERT INTO COMMENTS VALUES(123, '"); DELETE FROM users; -- ');
Um solche Angriffe zu verhindern, ist es wichtig, parametrisierte SQL-Anweisungen zu verwenden, die Benutzereingaben nicht mit der Abfragezeichenfolge verketten. In .NET 2.0 können Sie die SqlCommand-Klasse mit Parametern verwenden. Zum Beispiel:
string comment = "..."; // User input int id = 123; string sql = "INSERT INTO COMMENTS (ID, Comment) VALUES (@id, @comment)"; SqlCommand command = new SqlCommand(sql, connection); command.Parameters.AddWithValue("@id", id); command.Parameters.AddWithValue("@comment", comment); command.ExecuteNonQuery();
Durch die Verwendung parametrisierter SQL-Anweisungen können Sie gute Codierungspraktiken beibehalten und sich davor schützen SQL-Injections und verhindern Sie unbefugte Datenmanipulation auf Ihrer Umfrage-Webseite.
Das obige ist der detaillierte Inhalt vonWie kann es zu einer SQL-Injection in INSERT-Anweisungen kommen, auch bei Benutzerkommentaren, und wie kann sie verhindert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!