SQL-injektion är en form av nätverk attack som involverar " injicera " kod i en databas i ett försök att tvinga programmet databasen fråga att returnera ett fel och ge injektorn lite information om både databasen och informationen inom den. Det kan utföras från vilken webbsida som fungerar som en portal till en osäker databas och inte städar sina frågor . Instruktioner
1
Kontrollera att du anger vilken typ av underlag som krävs när du skriver din SQL -kod . De flesta utvecklingsmiljöer kan du ange " sträng " , " heltal " eller "date " . Till exempel är den URL
http://mysite.com/listauthordetails.aspx?user_id=1234
tolkas av databas som
SELECT förnamn , efternamn FROM användare WHERE user_id = '1234 '
Denna fråga kan skrivas om till
Dim ID som String = Request.QueryString ( " ID " ) katalog
Dim cmd som ny SqlCommand ( " VÄLJ USER_ID från användarna WHERE user_id = @ user_id " ) katalog
Dim param = ny SqlParameter ( " user_id " , SqlDbType.VarChar ) katalog
param.Value = ID
cmd . Parameters.Add ( param ) katalog
Denna kod förhindrar ytterligare information från att läggas till i slutet av SQL-fråga , och endast passerar resultatet av user_id begäran .
2
Använd . htaccess fil för att blockera olagliga ansökningar innan de skickas till databasen , med RewriteCond ( ) kommandot . Till exempel , för att blockera ett skript försöker ändra en begäran variabel använder linjen " RewriteCond % { QUERY_STRING } _REQUEST ( =