SQL-injeksjon er en form for nettverk angrep som involverer " injisere " kode i en database i et forsøk på å tvinge databasesøket programmet til å returnere en feil og gi injektoren litt informasjon om både databasen og opplysninger innen det. Det kan utføres fra en Web-side som fungerer som en portal til en usikker database og ikke rense ikke sine spørringer. Instruksjoner
en
Kontroller at du angir hvilken type innsats som kreves når du skriver din SQL-spørringen koden . De fleste utviklingsmiljøer lar deg spesifisere "streng ", " heltall " eller "dato" . For eksempel er URL
http://mysite.com/listauthordetails.aspx?user_id=1234
tolket av databasen som
SELECT fornavn, etternavn FROM brukere HVOR user_id = '1234 '
Dette søket 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 forhindrer ytterligere informasjon blir lagt til på slutten av SQL- spørringen , og bare passerer resultatet av user_id forespørsel.
2
Bruk . htaccess -filen til å blokkere illegitime forespørsler før de sendes til databasen ved hjelp av RewriteCond ( ) kommando. For eksempel vil blokkere et skript forsøker å endre en forespørsel variabel , bruker du linjen " RewriteCond % { QUERY_STRING } _REQUEST ( =