Hvordan blokkere SQL-injeksjon
SQL-injeksjon er en form for nettverksangrep som involverer "sprøyterom" kode i en database i et forsøk på å tvinge førespurnaden programmet til å returnere en feil og gi injektoren litt informasjon om både databasen og informasjonen i den. Det kan utføres fra en hvilken som helst webside som fungerer som en portal til en usikker database og ikke rense sine spørringer.
Bruksanvisning
1 Pass på at du angir hvilken type innspill som kreves når du skriver din SQL-spørring kode. De fleste utviklingsmiljøer lar deg spesifisere "streng", "heltall" eller "date". For eksempel URL
http://mysite.com/listauthordetails.aspx?user_id=1234
blir tolket av den database som
SELECT first_name, last_name FROM brukere WHERE user_id = '1234'
Denne spørringen kan omskrives til
Dim ID som String = Request.QueryString ( "ID")
Dim cmd Som ny SqlCommand ( "SELECT user_id FROM brukere WHERE user_id = @user_id")
Dim param = ny SqlParameter ( "user_id", SqlDbType.VarChar)
param.Value = ID
cmd.Parameters.Add (param)
Denne koden hindrer ytterligere informasjon blir lagt til på slutten av SQL-spørringen, og bare passerer resultatet av USER_ID forespørsel.
2 Bruk denne filen til å blokkere ulovlige forespørsler før de sendes til databasen, ved hjelp av RewriteCond () kommandoen. For eksempel, for å blokkere et skript forsøker å endre en forespørsel variabel, bruker linjen "RewriteCond% {QUERY_STRING} _REQUEST (= | [| \% [0-9A-Z] {0,2})" i .htaccess fil .
3 Test din SQL-spørring kode før du setter det inn i direktesendingen på nettet. Dette er sannsynligvis det viktigste du kan gjøre, og bør gjøres hver gang du oppdaterer ditt nettsted.