SQL-injektion er en form for netværk angreb, der indebærer " indsprøjtning " kode i en database i et forsøg på at tvinge databaseforespørgsel program til at returnere en fejl, og give injektoren nogle oplysninger om både databasen og oplysninger inden det . Det kan udføres fra enhver webside, der fungerer som en portal til en usikker database , og ikke rense sine forespørgsler. Instruktioner
1
Sørg for at angive den type input kræves, når du skriver din SQL-forespørgsel kode. De fleste udviklingsmiljøer muligt at angive "streng ", " integer " eller " date" . For eksempel er URL
http://mysite.com/listauthordetails.aspx?user_id=1234
fortolkes af databasen som
SELECT first_name , last_name FROM brugere WHERE user_id = '1234 '
Denne forespørgsel kan omskrives til
Dim id som String = Request.Querystring ( "ID" )
Dim cmd som ny SqlCommand ( " SELECT USER_ID FROM brugere WHERE user_id = @ user_id " )
Dim param = new SqlParameter ( " user_id " , SqlDbType.VarChar )
param.Value = ID
cmd . Parameters.Add ( param )
Denne kode forhindrer yderligere oplysninger fra at blive tilføjet i slutningen af SQL forespørgsel, og kun passerer resultatet af user_id anmodning.
2
Brug . htaccess til at blokere illegitime , før disse sendes til databasen, vha. RewriteCond () kommando. For eksempel , for at blokere et script forsøger at ændre en anmodning variabel bruge linjen " RewriteCond % { QUERY_STRING } _Anmod (=