Parametrisierte Abfragen: Eine robuste Verteidigung gegen die SQL -Injektion
Datenbanksicherheit ist in der SQL -Programmierung von größter Bedeutung. Die SQL -Injektionsangriffe stellen eine signifikante Bedrohung dar, die parametrisierten Abfragen bieten jedoch eine starke Verteidigung. Sie erreichen dies, indem sie benutzerversorgte Daten vom SQL-Befehl selbst trennen.
veranschaulichen wir mit zwei Beispielen für die Dateninsertion aus einem Textfeld:
Beispiel 1: Der sichere Ansatz (parametrisierte Abfrage)
SqlCommand cmd = new SqlCommand("INSERT INTO dbo.Cars VALUES(@TagNbr);", conn); cmd.Parameters.Add("@TagNbr", SqlDbType.Int); cmd.Parameters["@TagNbr"].Value = txtTagNumber.Text;
Hier fungiert @TagNbr
als Platzhalter. Der Wert von txtTagNumber
wird als Daten behandelt, nicht als ausführbarer Code.
Beispiel 2: Der gefährdete Ansatz (nicht parametrisiert)
int tagnumber = txtTagNumber.Text.ToInt16(); INSERT into Cars values(tagnumber);
Bei der Konvertierung in eine Ganzzahl scheint dies keine narrensichere Methode zu mindern. Bösartige Eingaben könnten immer noch Möglichkeiten finden, um die Abfrage zu beeinträchtigen.
Warum parametrisierte Abfragen überlegen sind:
parametrisierte Abfragen bieten erhebliche Vorteile:
Das obige ist der detaillierte Inhalt vonWie können parametrisierte Abfragen SQL -Abfragen gegen Injektionsangriffe sichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!