.NET, Java und andere High-Level-Datenbank-APIs in verschiedenen Sprachen bieten häufig Techniken, die als vorbereitete Anweisungen und Parameterbindung bekannt sind, im Gegensatz zum Senden von Nur-Text-Befehlen an den Datenbankserver. Was ich möchte, ist wissen, was passiert, wenn Sie eine Anweisung wie folgt auszuführen:Parameterbindung: Was passiert unter der Haube?
SqlCommand cmd = new SqlCommand("GetMemberByID");
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@ID", memberID);
para.DbType = DbType.Integer;
cmd.Parameters.Add(param);
Ich weiß, das ist eine bewährte Methode. SQL-Injection-Angriffe werden auf diese Weise minimiert. Aber was genau passiert unter der Haube, wenn Sie diese Anweisungen ausführen? Ist das Endergebnis noch eine SQL-sichere Zeichenfolge? Wenn nicht, was ist das Endergebnis? Und ist das genug, um SQL-Injection-Angriffe zu verhindern?