SQL-Injection ist eine Form von Netzwerk- Angriff, " Einspritzen " Code beinhaltet in einer Datenbank in einem Versuch, die Datenbank-Abfrage -Programm zu zwingen, einen Fehler zurück und geben dem Injektor einige Informationen sowohl über die Datenbank und Informationen, die im es . Es kann von jeder Web -Seite, die als Portal zu einer unsicheren Datenbank handelt und nicht desinfizieren ihre Abfragen durchgeführt werden. Anleitung
1
Achten Sie darauf, die Art der Eingabe erforderlich, wenn das Schreiben der SQL-Abfrage -Code. Die meisten Entwicklungsumgebungen ermöglichen es Ihnen, "string" angeben , "integer" oder "date" . Zum Beispiel wird die URL
http://mysite.com/listauthordetails.aspx?user_id=1234
von der Datenbank als
SELECT vorname, nachname FROM users interpretiert WHERE user_id = '1234 '
Diese Abfrage kann bis
Dim ID als String = Request.QueryString ( "ID")
Dim cmd als neue SqlCommand ( umgeschrieben werden " SELECT user_id FROM users WHERE user_id = @ " )
Dim param = new SqlParameter ( " user_id " , SqlDbType.VarChar )
param.Value = ID
cmd user_id . Parameters.Add ( param)
Dieser Code verhindert, dass zusätzliche Informationen an das Ende der SQL-Abfrage angehängt und übergibt nur das Ergebnis der user_id Anfrage.
2
Verwenden Sie die . htaccess -Datei auf illegitime Anfragen blockieren, bevor sie an die Datenbank übergeben werden, mit der RewriteCond ()-Befehl . Zum Beispiel, um ein Skript versucht, eine Variable request ändern blockieren , verwenden Sie die Zeile " RewriteCond% { QUERY_STRING } _REQUEST ( =